///
import type { Cache } from '../cache/cache';
import type { DocumentArtifact, GraphQLVariables, GraphQLObject, NestedList } from '../lib/types';
import type { ClientHooks, ClientPlugin } from './documentStore';
import { DocumentStore } from './documentStore';
import type { FetchParamFn, ThrowOnErrorOperations, ThrowOnErrorParams } from './plugins';
export { DocumentStore, type ClientPlugin, type SendParams } from './documentStore';
export { fetch, mutation, query, subscription } from './plugins';
export type HoudiniClientConstructorArgs = {
url?: string;
fetchParams?: FetchParamFn;
plugins?: NestedList;
pipeline?: NestedList;
throwOnError?: ThrowOnErrorParams;
};
export type ObserveParams<_Data extends GraphQLObject, _Artifact extends DocumentArtifact = DocumentArtifact, _Input extends GraphQLVariables = GraphQLVariables> = {
artifact: _Artifact;
enableCache?: boolean;
cache?: Cache;
initialValue?: _Data | null;
initialVariables?: _Input;
fetching?: boolean;
};
export declare class HoudiniClient {
url: string;
readonly throwOnError_operations: ThrowOnErrorOperations[];
private cache;
private throwOnError;
private fetchParams;
private pipeline;
private extraPlugins;
proxies: Record Promise>;
componentCache: Record;
setCache(cache: Cache): void;
constructor({ url, fetchParams, plugins, pipeline, throwOnError, }?: HoudiniClientConstructorArgs);
get plugins(): ClientPlugin[];
observe<_Data extends GraphQLObject, _Input extends GraphQLVariables>({ enableCache, fetching, ...rest }: ObserveParams<_Data, DocumentArtifact, _Input>): DocumentStore<_Data, _Input>;
registerProxy(url: string, handler: (operation: {
query: string;
variables: any;
operationName: string;
session: App.Session | null | undefined;
}) => Promise): void;
}
export declare function createPluginHooks(plugins: ClientPlugin[]): ClientHooks[];