export interface SharedUser {
    user: number;
    permission: 'view' | 'edit';
}
export interface SharedRole {
    role: number;
    permission: 'view' | 'edit';
}
export interface SharingState {
    is_public: boolean;
    shared_users: SharedUser[];
    shared_roles: SharedRole[];
}
export interface SharingDialogProps {
    isOwner: boolean;
    sharing: SharingState;
    onChange: (sharing: SharingState) => void;
    onClose: () => void;
    /** The entity type name to fetch sharing candidates for */
    entityName: string;
    /** Human-readable singular name of the entity type (e.g. "Sheet") */
    entityDisplayName?: string;
    /** Current author user id (for owner-role users to transfer ownership) */
    authorId?: number;
    /** Called when owner-role user changes the author */
    onAuthorChange?: (newAuthorId: number) => void;
    /** Whether the current user has the system Owner role (can transfer authorship) */
    isSystemOwner?: boolean;
}
export declare function SharingDialog({ isOwner, sharing, onChange, onClose, entityName, entityDisplayName, authorId, onAuthorChange, isSystemOwner }: SharingDialogProps): import("react/jsx-runtime").JSX.Element;
