interface Permission {
    _id: string;
    name: string;
}
interface Role {
    _id: string;
    name: string;
    appId: string;
    permissions: Permission[];
}
interface AccessData {
    _id: string;
    resourceId: any;
    resourceType: any;
    application: string;
    groupId?: string;
    user_email?: string;
    role: Role;
    grantedBy: string;
    grantedAt: string;
    isInherited: boolean;
}
interface PermissionsState {
    accessData: AccessData[];
    isLoading: boolean;
    error: string | null;
    fetchPermissions: (appId: string, resourceId?: string) => Promise<void>;
    hasPermission: (permissionName: string, resourceId?: string) => boolean;
    hasGlobalPermission: (permissionName: string, resourceId: string) => boolean;
    hasApplicationAccess: (resourceId?: string) => boolean;
    reset: () => void;
}
export declare const usePermissionsStore: import("zustand").UseBoundStore<import("zustand").StoreApi<PermissionsState>>;
export {};
//# sourceMappingURL=usePermissionsStore.d.ts.map