/// <reference types="react" />
import { IdFilterComparison, ModelOrId } from '@parlor/common';
import { FolderType } from '@parlor/common/amplify-schema';
import { ServiceReturnType } from '@parlor/contexts';
type IFolder = ServiceReturnType<'folder', 'useList'>['data']['list']['edges'][number]['node'];
type UseFolderProps<T extends {
    folderID?: IdFilterComparison;
}> = {
    filter?: T;
    isEnabledCacheOptions?: boolean;
    isOtherFolderEnabled?: boolean;
    onSelectedFolderChange?(): void;
    type: FolderType;
};
export declare function useFolder<T extends {
    folderID?: IdFilterComparison;
}>({ type, isOtherFolderEnabled, isEnabledCacheOptions, filter, onSelectedFolderChange, }: UseFolderProps<T>): {
    selectedFolderJSX: JSX.Element;
    selectedFolder: {
        __typename?: "folder";
        organizationID: string;
        id: string;
        name: string;
        type?: FolderType;
        itemCount: number;
        created_at: any;
        updated_at: any;
    };
    selectedFolderID: any;
    isSelectedOtherFolder: boolean;
    otherFolder: {
        __typename?: "folder";
        organizationID: string;
        id: string;
        name: string;
        type?: FolderType;
        itemCount: number;
        created_at: any;
        updated_at: any;
    };
    isLoadingOtherFolder: boolean;
    setSelectedFolderId: (modelOrId?: ModelOrId) => void;
    openMoveModal: (model: import("../types").ModelWithFolder) => void;
    renderFolderRow: (model: IFolder, isSelectedFolder?: boolean) => JSX.Element;
    isFolder: <M extends {
        __typename?: "folder";
        organizationID: string;
        id: string;
        name: string;
        type?: FolderType;
        itemCount: number;
        created_at: any;
        updated_at: any;
    } = {
        __typename?: "folder";
        organizationID: string;
        id: string;
        name: string;
        type?: FolderType;
        itemCount: number;
        created_at: any;
        updated_at: any;
    }>(item: any) => item is M;
};
export {};
