import { WorkspacePermission } from '../services/can';
export type ObjectTypesWithPermissions = WorkspacePermission extends `${string}:${infer TObject}` ? TObject : never;
type ActionsForObjectsHelper<O extends string, T extends string> = T extends `${infer Action}:${infer TObject}` ? TObject extends O ? Action : never : never;
type PermissionsForObjectType<TObjectType extends ObjectTypesWithPermissions> = ActionsForObjectsHelper<TObjectType, WorkspacePermission>;
export type ObjectLevelCan<TObjectType extends ObjectTypesWithPermissions> = {
    [key in PermissionsForObjectType<TObjectType>]: boolean;
};
export declare function createObjectLevelCan<T extends ObjectTypesWithPermissions>(): ObjectLevelCan<T>;
export {};
