export interface FileInfo {
    name: string;
    path: string;
    size: number;
    type: 'file' | 'directory';
    mtime: number;
    ctime: number;
    permissions?: string;
    isHidden?: boolean;
}
export interface ListDirectoryOptions {
    path: string;
    showHidden?: boolean;
    sortBy?: 'name' | 'size' | 'mtime' | 'type';
    sortOrder?: 'asc' | 'desc';
}
export interface ListDirectoryResult {
    files: FileInfo[];
    totalCount: number;
}
export interface FileOperationOptions {
    path: string;
}
export interface CreateFileOptions {
    path: string;
    content?: string;
    encoding?: 'utf8' | 'base64';
}
export interface ReadFileOptions {
    path: string;
    encoding?: 'utf8' | 'base64';
}
export interface ReadFileResult {
    content: string;
    encoding: string;
}
export interface WriteFileOptions {
    path: string;
    content: string;
    encoding?: 'utf8' | 'base64';
    append?: boolean;
}
export interface MoveFileOptions {
    sourcePath: string;
    destinationPath: string;
}
export interface CopyFileOptions {
    sourcePath: string;
    destinationPath: string;
    overwrite?: boolean;
}
export interface RenameFileOptions {
    path: string;
    newName: string;
}
export interface CreateDirectoryOptions {
    path: string;
    recursive?: boolean;
}
export interface SearchFilesOptions {
    directory: string;
    query: string;
    searchType?: 'name' | 'content' | 'both';
    fileTypes?: string[];
    maxResults?: number;
    recursive?: boolean;
}
export interface SearchFilesResult {
    files: FileInfo[];
    totalFound: number;
}
export interface PermissionResult {
    granted: boolean;
    message?: string;
}
export interface SystemFilePickerOptions {
    /** 选择类型 */
    type: 'file' | 'directory' | 'both';
    /** 是否允许多选 */
    multiple?: boolean;
    /** 文件类型过滤 */
    accept?: string[];
    /** 起始目录 */
    startDirectory?: string;
    /** 标题 */
    title?: string;
}
export interface SelectedFileInfo {
    /** 文件名 */
    name: string;
    /** 文件路径（可能是真实路径或URI） */
    path: string;
    /** 原始URI（移动端） */
    uri?: string;
    /** 文件大小 */
    size: number;
    /** 文件类型 */
    type: 'file' | 'directory';
    /** MIME类型 */
    mimeType: string;
    /** 修改时间 */
    mtime: number;
    /** 创建时间 */
    ctime: number;
}
export interface SystemFilePickerResult {
    /** 选择的文件信息列表 */
    files: SelectedFileInfo[];
    /** 选择的目录信息列表 */
    directories: SelectedFileInfo[];
    /** 是否被用户取消 */
    cancelled: boolean;
}
export interface AdvancedFileManagerPlugin {
    requestPermissions(): Promise<PermissionResult>;
    checkPermissions(): Promise<PermissionResult>;
    openSystemFilePicker(options: SystemFilePickerOptions): Promise<SystemFilePickerResult>;
    openSystemFileManager(path?: string): Promise<void>;
    openFileWithSystemApp(filePath: string, mimeType?: string): Promise<void>;
    listDirectory(options: ListDirectoryOptions): Promise<ListDirectoryResult>;
    createDirectory(options: CreateDirectoryOptions): Promise<void>;
    deleteDirectory(options: FileOperationOptions): Promise<void>;
    createFile(options: CreateFileOptions): Promise<void>;
    readFile(options: ReadFileOptions): Promise<ReadFileResult>;
    writeFile(options: WriteFileOptions): Promise<void>;
    deleteFile(options: FileOperationOptions): Promise<void>;
    moveFile(options: MoveFileOptions): Promise<void>;
    copyFile(options: CopyFileOptions): Promise<void>;
    renameFile(options: RenameFileOptions): Promise<void>;
    getFileInfo(options: FileOperationOptions): Promise<FileInfo>;
    exists(options: FileOperationOptions): Promise<{
        exists: boolean;
    }>;
    searchFiles(options: SearchFilesOptions): Promise<SearchFilesResult>;
    echo(options: {
        value: string;
    }): Promise<{
        value: string;
    }>;
}
