export interface FileAttachment {
    path: string;
    name: string;
    size: number;
}
export interface FileDialogDeps {
    platform: NodeJS.Platform;
    exec: (cmd: string, opts?: {
        encoding: BufferEncoding;
        timeout?: number;
    }) => string;
    stat: (filePath: string) => {
        size: number;
    };
}
export declare class FileDialogService {
    private deps;
    constructor(deps?: Partial<FileDialogDeps>);
    /** Returns the OS-specific command string, or null if the platform is unsupported. */
    getCommand(): string | null;
    /**
     * Opens a native file picker dialog and returns metadata for each selected file.
     * Returns `null` if the user cancels the dialog.
     * Throws if the platform is unsupported or the command fails unexpectedly.
     */
    pickFiles(): FileAttachment[] | null;
}
//# sourceMappingURL=file-dialog.service.d.ts.map