import { Dexie } from 'dexie'; export type KeyPaths = { [P in keyof T]: P extends string ? T[P] extends Array ? K extends object ? P | `${P}.${number}` | `${P}.${number}.${KeyPaths}` : P | `${P}.${number}` : T[P] extends (...args: any[]) => any ? never : T[P] extends object ? P | `${P}.${KeyPaths}` : P : never; }[keyof T]; export type TableProp = { [K in keyof DX]: DX[K] extends { schema: any; get: any; put: any; add: any; where: any; } ? K : never; }[keyof DX] & string; interface DexieCloudEntity { table(): string; realmId: string; owner: string; } export interface PermissionChecker { add(...tableNames: TableName[]): boolean; update(...props: KeyPaths[]): boolean; delete(): boolean; } export declare function usePermissions(entity: T): PermissionChecker infer TableName; } ? TableName : string>; export declare function usePermissions(db: TDB, table: TableProp, obj: T): PermissionChecker>; export {}; //# sourceMappingURL=usePermissions.d.ts.map