export declare enum SelectionType {
    All = "all",
    Page = "page",
    Single = "single"
}
/** A type alias for a function that takes a resource of type `T` and returns a string representing its ID. */
declare type ResourceIDResolver<T extends {
    [key: string]: unknown;
}> = (resource: T) => string;
export declare function useSelectableResourceState<T extends {
    [key: string]: unknown;
}>(resources: T[], { selectedResources: initSelectedResources, allResourcesSelected: initAllResourcesSelected, resourceIDResolver, }?: {
    selectedResources?: string[];
    allResourcesSelected?: boolean;
    resourceIDResolver?: ResourceIDResolver<T>;
}): {
    selectedResources: string[];
    allResourcesSelected: boolean;
    handleSelectionChange: (selectionType: SelectionType, selection?: string) => void;
    clearSelection: () => void;
    removeResource: (resource: string) => void;
};
export {};
//# sourceMappingURL=index.d.ts.map