import Joi from 'joi'; import { AccessInfo } from '../auth'; import { BaseModelMiddleware, BaseModelQueryHandler, BaseModelSchemas } from './model-middleware'; export declare const gqlSchemaSortOrder: import("graphql").DocumentNode; export declare const gqlSchemaQueryMode: import("graphql").DocumentNode; export declare const gqlSchemaDateFilter: import("graphql").DocumentNode; export declare const gqlSchemaStringFilter: import("graphql").DocumentNode; export declare const gqlSchemaIntFilter: import("graphql").DocumentNode; export type BaseModelBrowseArgs = { include?: any; pagination?: BaseModelBrowsePagination; select?: any; where?: any; orderBy?: any; distinct?: any; take?: number; skip?: number; options?: BaseModelBrowseOptions; }; export interface BaseModelBrowsePagination { page?: number; pageSize?: number; } export declare const _page: Joi.NumberSchema; export declare const _pageSize: Joi.NumberSchema; export declare const _pagination: Joi.ObjectSchema; export declare const gqlSchemaBrowsePagination: import("graphql").DocumentNode; export type BaseModelBrowseOptions = { speedMode?: boolean; }; export declare const _browseOptions: Joi.ObjectSchema; export declare const gqlSchemaBrowseOptions: import("graphql").DocumentNode; export type BaseModelBrowseReturn = { items: T[]; properties: BaseModelBrowsePagination & { count?: number; }; }; export declare const gqlSchemaBrowsePropertiesOutput: import("graphql").DocumentNode; export type AccessInfoAndOptions = AccessInfo & { disableRestriction?: boolean; overrideAuthor?: boolean; }; export declare class BaseModel { readonly schemas: BaseModelSchemas; readonly model: Model; private middleware; constructor(middleware: BaseModelMiddleware, name: string, schemas?: BaseModelSchemas); run(accessInfoAndOptions: AccessInfoAndOptions, promise: BaseModelQueryHandler): Promise; browse(params?: BrowseArgs): Promise>; get client(): PrismaClient; }