/** A single togglable permission within a group. Labels are pre-localised. */ export interface PermissionMatrixPermission { id: string; label: string; } /** One category of permissions, rendered as a labelled group. */ export interface PermissionMatrixGroup { id: string; label: string; permissions: PermissionMatrixPermission[]; } /** Agent-readiness curated handle for PermissionMatrix. */ export interface PermissionMatrixHandle { /** Ids of currently-granted editable permissions (locked items excluded). */ getSelection: () => string[]; /** Replace the granted set. Locked and unknown ids are ignored. */ setSelection: (values: string[]) => void; /** Revoke every editable permission. Locked items are untouched. */ clear: () => void; } export interface PermissionMatrixProps { /** Categories of permissions. All labels are already localised by the consumer. */ groups: PermissionMatrixGroup[]; /** Ids of granted permissions (controlled). Locked ids belong in `lockedItems`, not here. */ value: string[]; /** Fires with the next full granted-id array whenever an editable toggle changes. */ onChange: (next: string[]) => void; /** * Permission ids that render checked + disabled with a lock affordance — the * owner always holds them. They never appear in `onChange` payloads. */ lockedItems?: string[]; /** Disable every toggle in the matrix. */ disabled?: boolean; /** Accessible suffix announced on locked rows. Defaults to the kit's "Locked" string. */ lockedLabel?: string; /** Stable id — addresses this instance from the agent runtime. */ id?: string; className?: string; 'aria-label'?: string; } declare const permissionMatrixVariants: (props?: ({ disabled?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export declare const PermissionMatrix: import("react").ForwardRefExoticComponent>; export { permissionMatrixVariants }; //# sourceMappingURL=permission-matrix.d.ts.map