import { ClientOptions, Client, SSRExchange } from '@urql/next';
export { UrqlProvider as Provider, useQuery } from '@urql/next';
export * from 'urql';
import { Exchange } from '@urql/core';

declare const cacheExchange: Exchange;

type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
declare const createClient: (opts: Optional<ClientOptions, 'exchanges'>) => {
    client: Client;
    ssr: SSRExchange;
};

export { cacheExchange, createClient };
