import { ContentObjectItem } from "@vertesia/common";
export declare class DocumentSelection {
    object: ContentObjectItem | undefined;
    objects: Record<string, ContentObjectItem>;
    private setState;
    /**
     * The collection id to which the selected objects belong to.
     */
    collectionId?: string | undefined;
    singleSelection: boolean;
    constructor(object: ContentObjectItem | undefined, collectionId: string | undefined, objects: Record<string, ContentObjectItem>, setState: (selection: DocumentSelection) => void);
    isSingleSelection(): boolean;
    hasSelection(): boolean;
    size(): number;
    getObjectIds(): string[];
    getObjectId(): string | undefined;
    clone(): DocumentSelection;
    add(object: ContentObjectItem): void;
    remove(objectId: string): void;
    addAll(objects: ContentObjectItem[]): void;
    isSelected(objectId: string): boolean;
    removeAll(): void;
}
export declare function useDocumentSelection(): DocumentSelection;
export declare function useOptionalDocumentSelection(): DocumentSelection;
interface DocumentSelectionProviderProps {
    children: React.ReactNode;
    collectionId?: string;
    value?: ContentObjectItem;
}
export declare function DocumentSelectionProvider({ value, collectionId, children }: DocumentSelectionProviderProps): import("react/jsx-runtime").JSX.Element | undefined;
export {};
//# sourceMappingURL=DocumentSelectionProvider.d.ts.map