import { ComputedRef } from 'vue'; import { FileTypeFilter, FilePickerMode, FilePickerVisibleEntry } from '@wolf-tui/shared'; export interface IUseFilePickerStateProps { /** * Initial directory path. * * @default '.' */ initialPath?: string; /** * Allow multiple file selection. * * @default false */ multiSelect?: boolean; /** * Filter by file type. * * @default 'all' */ fileTypes?: FileTypeFilter; /** * Show hidden files (dotfiles). * * @default false */ showHidden?: boolean; /** * Show file details (size). * * @default false */ showDetails?: boolean; /** * Maximum visible entries. * * @default 10 */ maxHeight?: number; /** * Callback when selection is confirmed. */ onSelect?: (selectedPaths: string[]) => void; /** * Callback on every selection toggle (Space key). Fires in real-time * as the user toggles items, unlike onSelect which fires on confirmation. */ onSelectionChange?: (paths: string[]) => void; /** * Callback when current directory changes. */ onDirectoryChange?: (path: string) => void; /** * Callback on error. */ onError?: (error: string) => void; } export interface IFilePickerState { currentPath: ComputedRef; visibleEntries: ComputedRef; mode: ComputedRef; filterText: ComputedRef; multiSelect: boolean; showDetails: boolean; selectedPaths: ComputedRef>; errorMessage: ComputedRef; hasScrollUp: ComputedRef; hasScrollDown: ComputedRef; scrollUpCount: ComputedRef; scrollDownCount: ComputedRef; focusNext: () => void; focusPrevious: () => void; focusFirst: () => void; focusLast: () => void; select: () => void; toggleSelect: () => void; goParent: () => void; enterDirectory: () => void; enterFilterMode: () => void; exitFilterMode: () => void; filterInsert: (text: string) => void; filterDelete: () => void; retry: () => void; } export declare const useFilePickerState: ({ initialPath, multiSelect, fileTypes, showHidden, showDetails, maxHeight, onSelect, onSelectionChange, onDirectoryChange, onError, }: IUseFilePickerStateProps) => IFilePickerState; //# sourceMappingURL=use-file-picker-state.d.ts.map