/**
 * A uniquely‐branded string that represents a serialized permission.
 *
 * Internally it’s formatted as:
 *   `${ability}#${resource_class}#${resource_id}`
 *
 * By branding it (via a private `unique symbol`), we prevent plain `string`
 * values from being mistaken for real permissions. Only values returned
 * by `stringifyPermission(...)` (and exposed in `PERMISSIONS`) carry this brand.
 */
declare const _StringifiedPermissionBrand: unique symbol;
export type StringifiedPermission = string & {
    [_StringifiedPermissionBrand]: void;
};
export declare const stringifyPermission: ({ ability, resource_class: resourceClass, resource_id: resourceId, }: {
    ability: string;
    resource_class: string;
    resource_id?: string | number;
}) => StringifiedPermission;
export declare const parsePermission: (permission: string) => {
    ability: string;
    resource_class: string;
    resource_id: string;
};
export {};
//# sourceMappingURL=utils.d.ts.map