import type { DatabaseEntityId, EntityId, SchemaEntityId, TableEntityId } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/admin/permissions/types";
import { DataPermission, DataPermissionValue } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/admin/permissions/types";
import type Database from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-lib/v1/metadata/Database";
import type { GroupsPermissions } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api";
export declare function updatePermission(permissions: GroupsPermissions, groupId: number, databaseId: number, permission: DataPermission, path: Array<number | string>, value: string | undefined, entityIds?: any[]): GroupsPermissions;
export declare function updateFieldsPermission(permissions: GroupsPermissions, groupId: number, entityId: TableEntityId, value: any, database: Database, permission: DataPermission): GroupsPermissions;
export declare function updateTablesPermission(permissions: GroupsPermissions, groupId: number, { databaseId, schemaName }: SchemaEntityId, value: any, database: Database, permission: DataPermission): GroupsPermissions;
export declare function updateSchemasPermission(permissions: GroupsPermissions, groupId: number, { databaseId }: DatabaseEntityId, value: DataPermissionValue, database: Database, permission: DataPermission): GroupsPermissions;
export declare function updateEntityPermission(permissions: GroupsPermissions, groupId: number, entityId: EntityId, value: DataPermissionValue, database: Database, permission: DataPermission): GroupsPermissions;
export declare function restrictCreateQueriesPermissionsIfNeeded(permissions: GroupsPermissions, groupId: number, entityId: EntityId, permission: DataPermission, value: DataPermissionValue, database: Database): GroupsPermissions;
export declare function inferAndUpdateEntityPermissions(permissions: GroupsPermissions, groupId: number, entityId: EntityId, database: Database, permission: DataPermission): GroupsPermissions;
