export type LilconfigResult = null | { filepath: string; config: any; isEmpty?: boolean; }; interface OptionsBase { cache?: boolean; stopDir?: string; searchPlaces?: string[]; ignoreEmptySearchPlaces?: boolean; packageProp?: string | string[]; } export type Transform = | TransformSync | ((result: LilconfigResult) => Promise); export type TransformSync = (result: LilconfigResult) => LilconfigResult; type LoaderResult = any; export type LoaderSync = (filepath: string, content: string) => LoaderResult; export type Loader = | LoaderSync | ((filepath: string, content: string) => Promise); export type Loaders = Record; export type LoadersSync = Record; export interface Options extends OptionsBase { loaders?: Loaders; transform?: Transform; } export interface OptionsSync extends OptionsBase { loaders?: LoadersSync; transform?: TransformSync; } export declare const defaultLoadersSync: LoadersSync; export declare const defaultLoaders: Loaders; type ClearCaches = { clearLoadCache: () => void; clearSearchCache: () => void; clearCaches: () => void; }; type AsyncSearcher = { search(searchFrom?: string): Promise; load(filepath: string): Promise; } & ClearCaches; export declare function lilconfig( name: string, options?: Partial, ): AsyncSearcher; type SyncSearcher = { search(searchFrom?: string): LilconfigResult; load(filepath: string): LilconfigResult; } & ClearCaches; export declare function lilconfigSync( name: string, options?: OptionsSync, ): SyncSearcher;