import { Ref } from 'vue'; import { PickerAdapter, PickerCapabilities, PickerNode, PickerSelection, PickerSelectionMode, PickerSort, PickerSource } from '../types/filePicker'; import { SegmentedOption } from '../types'; interface PickerStateProps { open: boolean; adapter: PickerAdapter; selectionMode: PickerSelectionMode; sources: PickerSource[]; capabilities: PickerCapabilities; initialPath: string; initialSelection: PickerSelection | null; defaultSort: PickerSort; systemFilter?: (node: PickerNode, source: PickerSource) => boolean; } type PickerEmit = { (event: 'update:open', value: boolean): void; (event: 'select', value: PickerSelection): void; (event: 'cancel'): void; }; /** Internal orchestration; public consumers use FilePicker's props and events. */ export declare function useFilePicker(props: PickerStateProps, emit: PickerEmit, searchArea: Ref): { previewNode: import('vue').ComputedRef; sourceNames: Record; segments: import('vue').ComputedRef; activeSegment: import('vue').ComputedRef; mounts: import('vue').ShallowRef; mountView: import('vue').ComputedRef; allowedSources: import('vue').ComputedRef; source: import('vue').ShallowRef; query: import('vue').ShallowRef; recursive: import('vue').ShallowRef; sort: import('vue').ShallowRef; skipBlanks: import('vue').ShallowRef; reviewing: import('vue').ShallowRef; nav: { path: import('vue').ShallowRef; trail: Ref<{ path: string; label: string; }[], { path: string; label: string; }[] | { path: string; label: string; }[]>; entries: import('vue').ShallowRef; nodes: Ref | undefined; hasChildren?: boolean | undefined; path: string; name: string; parentPath?: string | null | undefined; parentName?: string | undefined; bytes?: number | null | undefined; modifiedAt?: string | null | undefined; unavailableReason?: string | undefined; } | { kind: "file"; format: string; file?: { readonly lastModified: number; readonly name: string; readonly webkitRelativePath: string; readonly size: number; readonly type: string; arrayBuffer: () => Promise; bytes: () => Promise>; slice: (start?: number, end?: number, contentType?: string) => Blob; stream: () => ReadableStream>; text: () => Promise; } | undefined; path: string; name: string; parentPath?: string | null | undefined; parentName?: string | undefined; bytes?: number | null | undefined; modifiedAt?: string | null | undefined; unavailableReason?: string | undefined; }> & Omit, keyof Map>, Map | (Map | undefined; hasChildren?: boolean | undefined; path: string; name: string; parentPath?: string | null | undefined; parentName?: string | undefined; bytes?: number | null | undefined; modifiedAt?: string | null | undefined; unavailableReason?: string | undefined; } | { kind: "file"; format: string; file?: { readonly lastModified: number; readonly name: string; readonly webkitRelativePath: string; readonly size: number; readonly type: string; arrayBuffer: () => Promise; bytes: () => Promise>; slice: (start?: number, end?: number, contentType?: string) => Blob; stream: () => ReadableStream>; text: () => Promise; } | undefined; path: string; name: string; parentPath?: string | null | undefined; parentName?: string | undefined; bytes?: number | null | undefined; modifiedAt?: string | null | undefined; unavailableReason?: string | undefined; }> & Omit, keyof Map>)>; children: import('vue').ShallowRef, Map>; expanded: Ref & Omit, keyof Set>, Set | (Set & Omit, keyof Set>)>; expanding: Ref & Omit, keyof Set>, Set | (Set & Omit, keyof Set>)>; expansionErrors: Ref & Omit, keyof Map>, Map | (Map & Omit, keyof Map>)>; loading: import('vue').ShallowRef; error: import('vue').ShallowRef; truncated: import('vue').ShallowRef; rows: import('vue').ComputedRef; isAllowed: (node: PickerNode) => boolean; clear: () => void; invalidate: () => void; register: (items: PickerNode[], parent?: string) => void; loadChildren: (folder: string, ancestors?: string[], refresh?: boolean) => Promise; load: (query?: string, recursive?: boolean, refresh?: boolean) => Promise; expand: (node: PickerNode) => Promise; enter: (node: PickerNode) => void; up: (target?: string) => void; }; selection: { keys: Ref & Omit, keyof Set>, Set | (Set & Omit, keyof Set>)>; dropped: Ref & Omit, keyof Set>, Set | (Set & Omit, keyof Set>)>; focusPath: import('vue').ShallowRef; resolving: import('vue').ShallowRef; resolutionError: import('vue').ShallowRef; roots: import('vue').ComputedRef; chosen: import('vue').ComputedRef<{ files: import('..').PickerFile[]; excluded: import('..').PickerExcluded[]; bytes: number; }>; focused: import('vue').ComputedRef; select: (node: PickerNode, modifiers?: { metaKey?: boolean; ctrlKey?: boolean; shiftKey?: boolean; toggle?: boolean; }) => void; selected: (node: PickerNode) => boolean; selectable: (node: PickerNode) => boolean; exclusion: (node: PickerNode) => import('..').PickerExcluded | null; reset: (selection?: PickerSelection | null) => void; resolve: () => Promise; folderProgress: (node: PickerNode) => string; ancestorSelected: (node: PickerNode, candidates?: Set & Omit, keyof Set>) => boolean; }; capability: import('vue').ComputedRef; path: import('vue').ShallowRef; trail: Ref<{ path: string; label: string; }[], { path: string; label: string; }[] | { path: string; label: string; }[]>; loading: import('vue').ShallowRef; error: import('vue').ShallowRef; rows: import('vue').ComputedRef; roots: import('vue').ComputedRef; chosen: import('vue').ComputedRef<{ files: import('..').PickerFile[]; excluded: import('..').PickerExcluded[]; bytes: number; }>; focused: import('vue').ComputedRef; resolving: import('vue').ShallowRef; resolutionError: import('vue').ShallowRef; confirmLabel: import('vue').ComputedRef; folderCount: import('vue').ComputedRef; canConfirm: import('vue').ComputedRef; chooseSegment: (value: string | number) => Promise; clearSelection: () => void; selectNode: (node: PickerNode, event: MouseEvent | KeyboardEvent) => void; enter: (node: PickerNode) => Promise; up: (target?: string) => Promise; refresh: () => Promise; selectParent: (node: PickerNode) => void; chooseLocal: (files: File[], _rootName?: string, relativePaths?: string[]) => Promise; cancel: () => void; confirm: () => void; keyboard: (event: KeyboardEvent) => void; }; export {};