import { Command } from 'commander'; import { z } from 'zod'; export interface Args { recursive: boolean; timezone: string; inputDirectory: string; inputStructure?: FilesystemStructure; inputFilenameOptions?: FilenameOption[]; outputDirectory: string; outputStructure?: FilesystemStructure; outputFilenameOptions?: FilenameOption[]; extensions: string[]; start?: string; end?: string; limit?: number; concurrency?: number; } export type Feature = 'input' | 'output' | 'structured-output' | 'structured-input' | 'extensions'; export declare const FilenameOptionSchema: z.ZodEnum<{ date: "date"; time: "time"; subject: "subject"; }>; export type FilenameOption = z.infer; export declare const FilesystemStructureSchema: z.ZodEnum<{ none: "none"; year: "year"; month: "month"; day: "day"; }>; export type FilesystemStructure = z.infer; export interface DefaultOptions { timezone?: string; recursive?: boolean; inputDirectory?: string; inputStructure?: FilesystemStructure; inputFilenameOptions?: FilenameOption[]; outputDirectory?: string; outputStructure?: FilesystemStructure; outputFilenameOptions?: FilenameOption[]; extensions?: string[]; startDate?: string; endDate?: string; limit?: number; concurrency?: number; } export interface AllowedOptions { inputStructures?: FilesystemStructure[]; inputFilenameOptions?: FilenameOption[]; outputStructures?: FilesystemStructure[]; outputFilenameOptions?: FilenameOption[]; extensions?: string[]; } export interface Options { defaults?: DefaultOptions; allowed?: AllowedOptions; features: Feature[]; addDefaults: boolean; logger: Logger; } export interface Logger { debug: (message: string, ...args: any[]) => void; info: (message: string, ...args: any[]) => void; warn: (message: string, ...args: any[]) => void; error: (message: string, ...args: any[]) => void; verbose: (message: string, ...args: any[]) => void; silly: (message: string, ...args: any[]) => void; } export declare const DEFAULT_APP_OPTIONS: DefaultOptions; export declare const DEFAULT_ALLOWED_OPTIONS: AllowedOptions; export declare const DEFAULT_FEATURES: Feature[]; export declare const DEFAULT_LOGGER: Logger; export declare const DEFAULT_OPTIONS: { defaults: DefaultOptions; allowed: AllowedOptions; features: Feature[]; addDefaults: boolean; logger: Logger; }; export declare const ConfigSchema: z.ZodObject<{ timezone: z.ZodString; inputDirectory: z.ZodOptional; inputStructure: z.ZodOptional>; inputFilenameOptions: z.ZodOptional>>; recursive: z.ZodOptional; outputDirectory: z.ZodOptional; outputStructure: z.ZodOptional>; outputFilenameOptions: z.ZodOptional>>; extensions: z.ZodOptional>; limit: z.ZodOptional; concurrency: z.ZodOptional; }, z.core.$strip>; export interface DateRange { start: Date; end: Date; } export type Config = z.infer; export interface Operator { process: (callback: (file: string) => Promise, dateRange?: Partial, concurrency?: number) => Promise; constructFilename: (createDate: Date, type: string, hash: string, options?: { subject?: string; }) => Promise; constructOutputDirectory: (createDate: Date) => Promise; } export interface DreadCabinet { configure: (command: Command) => Promise; setLogger: (logger: Logger) => void; read: (args: Args) => Promise>; applyDefaults: (config: Partial) => Config; validate: (config: Config) => Promise; operate: (config: Config) => Promise; } export declare const create: (creationOptsParam?: Partial) => DreadCabinet;