import { ComputedRef } from 'vue'; export interface SmartFolderProperty { name: string; display_name?: string; accessor: string; type: string; description?: string; display_names_by_value?: Record; } export interface FileById { id: string; name: string; created_at: string; modified_at: string; thumbnail_url: string; favorite_id?: string; metadata?: Record; } interface PathSegment { value: string; property: SmartFolderProperty; } interface SmartFolderConfig { enabledProperties: SmartFolderProperty[]; } export default function useFileSmartFolderStore(): { state: { readonly hierarchyLevels: readonly { readonly name: string; readonly display_name?: string | undefined; readonly accessor: string; readonly type: string; readonly description?: string | undefined; readonly display_names_by_value?: { readonly [x: string]: string; } | undefined; }[]; readonly currentPath: readonly { readonly value: string; readonly property: { readonly name: string; readonly display_name?: string | undefined; readonly accessor: string; readonly type: string; readonly description?: string | undefined; readonly display_names_by_value?: { readonly [x: string]: string; } | undefined; }; }[]; readonly availableValues: readonly { readonly value: string; readonly count: number; }[]; readonly matchingFiles: readonly { readonly id: string; readonly name: string; readonly created_at: string; readonly modified_at: string; readonly thumbnail_url: string; readonly favorite_id?: string | undefined; readonly metadata?: { readonly [x: string]: any; } | undefined; }[]; readonly isLoading: boolean; readonly isSavingConfig: boolean; readonly viewMode: "folders" | "files"; readonly totalCount: number; readonly page: number; readonly pageSize: number; }; isSmartFoldersView: import('@vueuse/shared').RemovableRef; defaultProperties: SmartFolderProperty[]; allSmartFolderProperties: ComputedRef<({ name: string; type: "string" | "boolean" | "number" | "date" | "array"; accessor: string; display_name: string; } | SmartFolderProperty)[]>; actions: { fetchData: () => Promise; loadConfiguration: () => Promise; saveConfiguration: (config: SmartFolderConfig) => Promise; navigateToLevel: (index: number) => void; setCurrentPath: (value: PathSegment[]) => void; selectValue: (value: string, { skipFetchData }?: { skipFetchData?: boolean; }) => void; toggleViewMode: () => void; reset: () => void; setMatchingFiles: (files: FileById[]) => void; }; }; export {};