import { TarOptions, TarOptionsAsyncFile, TarOptionsAsyncNoFile, TarOptionsSyncFile, TarOptionsSyncNoFile, TarOptionsWithAliases, TarOptionsWithAliasesAsync, TarOptionsWithAliasesAsyncFile, TarOptionsWithAliasesAsyncNoFile, TarOptionsWithAliasesFile, TarOptionsWithAliasesNoFile, TarOptionsWithAliasesSync, TarOptionsWithAliasesSyncFile, TarOptionsWithAliasesSyncNoFile } from './options.js'; export type CB = (er?: Error) => any; export type TarCommand = { (): AsyncClass; (opt: TarOptionsWithAliasesAsyncNoFile): AsyncClass; (entries: string[]): AsyncClass; (opt: TarOptionsWithAliasesAsyncNoFile, entries: string[]): AsyncClass; } & { (opt: TarOptionsWithAliasesSyncNoFile): SyncClass; (opt: TarOptionsWithAliasesSyncNoFile, entries: string[]): SyncClass; } & { (opt: TarOptionsWithAliasesAsyncFile): Promise; (opt: TarOptionsWithAliasesAsyncFile, entries: string[]): Promise; (opt: TarOptionsWithAliasesAsyncFile, cb: CB): Promise; (opt: TarOptionsWithAliasesAsyncFile, entries: string[], cb: CB): Promise; } & { (opt: TarOptionsWithAliasesSyncFile): void; (opt: TarOptionsWithAliasesSyncFile, entries: string[]): void; } & { (opt: TarOptionsWithAliasesSync): typeof opt extends (TarOptionsWithAliasesFile) ? void : typeof opt extends TarOptionsWithAliasesNoFile ? SyncClass : void | SyncClass; (opt: TarOptionsWithAliasesSync, entries: string[]): typeof opt extends TarOptionsWithAliasesFile ? void : typeof opt extends TarOptionsWithAliasesNoFile ? SyncClass : void | SyncClass; } & { (opt: TarOptionsWithAliasesAsync): typeof opt extends (TarOptionsWithAliasesFile) ? Promise : typeof opt extends TarOptionsWithAliasesNoFile ? AsyncClass : Promise | AsyncClass; (opt: TarOptionsWithAliasesAsync, entries: string[]): typeof opt extends TarOptionsWithAliasesFile ? Promise : typeof opt extends TarOptionsWithAliasesNoFile ? AsyncClass : Promise | AsyncClass; (opt: TarOptionsWithAliasesAsync, cb: CB): Promise; (opt: TarOptionsWithAliasesAsync, entries: string[], cb: CB): typeof opt extends TarOptionsWithAliasesFile ? Promise : typeof opt extends TarOptionsWithAliasesNoFile ? never : Promise; } & { (opt: TarOptionsWithAliasesFile): Promise | void; (opt: TarOptionsWithAliasesFile, entries: string[]): typeof opt extends TarOptionsWithAliasesSync ? void : typeof opt extends TarOptionsWithAliasesAsync ? Promise : Promise | void; (opt: TarOptionsWithAliasesFile, cb: CB): Promise; (opt: TarOptionsWithAliasesFile, entries: string[], cb: CB): typeof opt extends TarOptionsWithAliasesSync ? never : typeof opt extends TarOptionsWithAliasesAsync ? Promise : Promise; } & { (opt: TarOptionsWithAliasesNoFile): typeof opt extends (TarOptionsWithAliasesSync) ? SyncClass : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass : SyncClass | AsyncClass; (opt: TarOptionsWithAliasesNoFile, entries: string[]): typeof opt extends TarOptionsWithAliasesSync ? SyncClass : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass : SyncClass | AsyncClass; } & { (opt: TarOptionsWithAliases): typeof opt extends (TarOptionsWithAliasesFile) ? typeof opt extends TarOptionsWithAliasesSync ? void : typeof opt extends TarOptionsWithAliasesAsync ? Promise : void | Promise : typeof opt extends TarOptionsWithAliasesNoFile ? typeof opt extends TarOptionsWithAliasesSync ? SyncClass : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass : SyncClass | AsyncClass : typeof opt extends TarOptionsWithAliasesSync ? SyncClass | void : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass | Promise : SyncClass | void | AsyncClass | Promise; } & { syncFile: (opt: TarOptionsSyncFile, entries: string[]) => void; asyncFile: (opt: TarOptionsAsyncFile, entries: string[], cb?: CB) => Promise; syncNoFile: (opt: TarOptionsSyncNoFile, entries: string[]) => SyncClass; asyncNoFile: (opt: TarOptionsAsyncNoFile, entries: string[]) => AsyncClass; validate?: (opt: TarOptions, entries?: string[]) => void; }; export declare const makeCommand: (syncFile: (opt: TarOptionsSyncFile, entries: string[]) => void, asyncFile: (opt: TarOptionsAsyncFile, entries: string[], cb?: CB) => Promise, syncNoFile: (opt: TarOptionsSyncNoFile, entries: string[]) => SyncClass, asyncNoFile: (opt: TarOptionsAsyncNoFile, entries: string[]) => AsyncClass, validate?: (opt: TarOptions, entries?: string[]) => void) => TarCommand; //# sourceMappingURL=make-command.d.ts.map