import { Parser } from './yargs-parser-types.js'; export declare type Dictionary = { [key: string]: T; }; export declare type DictionaryKeyof = Exclude>, KeyOf>; export declare type KeyOf = Exclude<{ [K in keyof T]: T[K] extends U ? K : never; }[keyof T], undefined>; export declare type NotEmptyArray = [T, ...T[]]; export declare type ValueOf = T extends (infer U)[] ? U : T[keyof T]; export declare function assertNotStrictEqual(actual: T | N, expected: N, shim: PlatformShim, message?: string | Error): asserts actual is Exclude; export declare function assertSingleKey(actual: string | string[] | Dictionary, shim: PlatformShim): asserts actual is string; export declare function objectKeys(object: T): (keyof T)[]; export interface RequireDirectoryOptions { extensions?: ReadonlyArray; visit?: (commandObject: any, pathToFile: string, filename?: string) => any; recurse?: boolean; } export interface PlatformShim { assert: { notStrictEqual: (expected: any, observed: any, message?: string | Error) => void; strictEqual: (expected: any, observed: any, message?: string | Error) => void; }; findUp: (startDir: string, fn: (dir: string[], names: string[]) => string | undefined) => string; getCallerFile: () => string; getEnv: (key: string) => string | undefined; getProcessArgvBin: () => string; inspect: (obj: object) => string; mainFilename: string; requireDirectory: Function; stringWidth: (str: string) => number; cliui: Function; Parser: Parser; path: { basename: (p1: string, p2?: string) => string; extname: (path: string) => string; dirname: (path: string) => string; relative: (p1: string, p2: string) => string; resolve: (p1: string, p2: string) => string; }; process: { argv: () => string[]; cwd: () => string; execPath: () => string; exit: (code: number) => void; nextTick: (cb: Function) => void; stdColumns: number | null; }; readFileSync: (path: string, encoding: string) => string; require: RequireType; y18n: Y18N; } export interface RequireType { (path: string): Function; main: MainType; } export interface MainType { filename: string; children: MainType[]; } export interface Y18N { __(str: string, ...args: string[]): string; __n(str: string, ...args: (string | number)[]): string; getLocale(): string; setLocale(locale: string): void; updateLocale(obj: { [key: string]: string; }): void; }