import { InputFilter } from '../fields/filters/where-inputs'; import { PickerContext, BaseListTypeInfo, IndividualFieldAccessControl, FieldCreateItemAccessArgs, FieldUpdateItemAccessArgs, FieldReadItemAccessArgs, FieldAccessControl, MaybePromise } from '../types'; import { AccessOperation, BaseAccessArgs, CreateListItemAccessControl, DeleteListItemAccessControl, ListFilterAccessControl, ListOperationAccessControl, UpdateListItemAccessControl } from '../types/config/access-control'; import { InitialisedList } from '../types-for-lists'; export declare function cannotForItem(operation: string, list: InitialisedList): string; export declare function cannotForItemFields(operation: string, list: InitialisedList, fieldsDenied: string[]): string; export declare function getOperationAccess(list: InitialisedList, context: PickerContext, operation: 'delete' | 'create' | 'update' | 'query'): Promise; export declare function getAccessFilters(list: InitialisedList, context: PickerContext, operation: keyof typeof list.access.filter): Promise; export declare type ListAccessControl = ListAccessControlFunction | ListAccessControlObject; declare type ListAccessControlFunction = (args: BaseAccessArgs & { operation: AccessOperation; }) => MaybePromise; declare type ListAccessControlObject = { operation: ListOperationAccessControl | { query: ListOperationAccessControl<'query', ListTypeInfo>; create: ListOperationAccessControl<'create', ListTypeInfo>; update: ListOperationAccessControl<'update', ListTypeInfo>; delete: ListOperationAccessControl<'delete', ListTypeInfo>; }; filter?: { query?: ListFilterAccessControl<'query', ListTypeInfo>; update?: ListFilterAccessControl<'update', ListTypeInfo>; delete?: ListFilterAccessControl<'delete', ListTypeInfo>; }; item?: { create?: CreateListItemAccessControl; update?: UpdateListItemAccessControl; delete?: DeleteListItemAccessControl; }; }; export declare function parseFieldAccessControl(access: FieldAccessControl | undefined): ResolvedFieldAccessControl; export declare type ResolvedListAccessControl = { operation: { query: ListOperationAccessControl<'query', BaseListTypeInfo>; create: ListOperationAccessControl<'create', BaseListTypeInfo>; update: ListOperationAccessControl<'update', BaseListTypeInfo>; delete: ListOperationAccessControl<'delete', BaseListTypeInfo>; }; filter: { query: ListFilterAccessControl<'query', BaseListTypeInfo>; update: ListFilterAccessControl<'update', BaseListTypeInfo>; delete: ListFilterAccessControl<'delete', BaseListTypeInfo>; }; item: { create: CreateListItemAccessControl; update: UpdateListItemAccessControl; delete: DeleteListItemAccessControl; }; }; export declare type ResolvedFieldAccessControl = { create: IndividualFieldAccessControl>; read: IndividualFieldAccessControl>; update: IndividualFieldAccessControl>; }; export declare function parseListAccessControl(access: ListAccessControl): ResolvedListAccessControl; export {};