import { GraphQLClient } from 'graphql-request'; import { BaseModel } from '@anthor/entities-types'; import { CountInput, CreateInput, CreateManyInput, DistinctInput, FindByIdInput, FindByIdsInput, FindManyInput, FindOneInput, PaginationInput, RemoveByIdInput, RemoveManyInput, RemoveOneInput, UpdateInput, UpdateManyInput, UpdateOneInput } from './Inputs'; import { CreateManyResponse, RecordIdAndRecordResponse } from './Responses'; export interface BaseServiceConstructor { readonly anthorApi: GraphQLClient; readonly modelName: string; readonly defaultFragment: string; } export interface RequestOptions { fragment?: string; omitDefaultFragment?: boolean; } export declare abstract class BaseService> { protected anthorApi: GraphQLClient; private readonly _defaultFragment; private readonly _modelName; constructor({ anthorApi, defaultFragment, modelName }: BaseServiceConstructor); setClient(endpoint: string, apiKey: string): void; findById(variables: FindByIdInput, options?: RequestOptions): Promise; findOne(variables: FindOneInput, options?: RequestOptions): Promise; findByIds(variables: FindByIdsInput, options?: RequestOptions): Promise; findMany(variables: FindManyInput, options?: RequestOptions): Promise; pagination(variables: PaginationInput, options?: RequestOptions): Promise>; count(variables: CountInput): Promise; distinct(variables: DistinctInput): Promise; create(variables: CreateInput, options?: RequestOptions): Promise>; createMany(variables: CreateManyInput, options?: RequestOptions): Promise>; update(variables: UpdateInput, options?: RequestOptions): Promise>; updateOne(variables: UpdateOneInput, options?: RequestOptions): Promise>; updateMany(variables: UpdateManyInput): Promise; removeById(variables: RemoveByIdInput, options?: RequestOptions): Promise>; removeOne(variables: RemoveOneInput, options?: RequestOptions): Promise>; removeMany(variables: RemoveManyInput): Promise; protected buildQuery(queryOrMutation: string, options?: RequestOptions): string; }