import { type Principal, type PrincipalType, type ShareItem } from '../types';
export interface UseSharingOptions {
    dataSourceId: string;
    recordId: string;
}
export interface UseSharingReturn {
    shares: ShareItem[];
    principals: Principal[];
    isLoading: boolean;
    isPrincipalsLoading: boolean;
    error: Error | null;
    loadShares: () => Promise<void>;
    loadPrincipals: () => Promise<void>;
    addShares: (items: {
        principalType: PrincipalType;
        principalId: string | null;
    }[]) => Promise<boolean>;
    updatePermission: (share: ShareItem, permissions: number) => Promise<boolean>;
    removeShare: (share: ShareItem) => Promise<boolean>;
}
export declare function useSharing({ dataSourceId, recordId }: UseSharingOptions): UseSharingReturn;
