import type { DocumentNode } from 'graphql'; import type { Observable } from 'rxjs'; import type { OperationVariables, TypedDocumentNode } from '@apollo/client'; import { Apollo } from './apollo'; import { QueryRef } from './query-ref'; import { EmptyObject } from './types'; import * as i0 from "@angular/core"; export declare namespace Query { type WatchOptions = Omit, 'query'>; type FetchOptions = Omit, 'query'>; } export declare abstract class Query { protected readonly apollo: Apollo; abstract readonly document: DocumentNode | TypedDocumentNode; client: string; constructor(apollo: Apollo); watch(...[options]: {} extends TVariables ? [options?: Query.WatchOptions] : [options: Query.WatchOptions]): QueryRef; fetch(...[options]: {} extends TVariables ? [options?: Query.FetchOptions] : [options: Query.FetchOptions]): Observable>; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵprov: i0.ɵɵInjectableDeclaration>; }