/// <reference types="react" />
/// <reference types="zen-observable" />
import * as React from 'react';
import { Session, ISettings, ApolloLinkExecuteResponse } from '../../types';
import { SchemaFetcher } from './SchemaFetcher';
import { SharingProps } from '../Share';
import { GraphQLRequest, Observable, FetchResult } from 'apollo-link';
export interface Props {
    session: Session;
    index: number;
    onRef: (index: number, ref: any) => void;
    isGraphcoolUrl: boolean;
    fetcher: (session: Session, graphQLRequest: GraphQLRequest) => ApolloLinkExecuteResponse;
    schemaFetcher: SchemaFetcher;
    isEndpoint: boolean;
    storage?: any;
    onEditQuery: (sessionId: string, data: any) => void;
    onEditVariables: (sessionId: string, variables: any) => any;
    onEditOperationName: (sessionId: string, name: any) => any;
    onClickCodeGeneration: any;
    onChangeHeaders: (sessionId: string, headers: string) => any;
    onClickHistory: () => void;
    onChangeEndpoint: (sessionId: string, value: string) => void;
    onClickShare: (sessionId: string) => void;
    onStopQuery: (sessionId: string) => void;
    headers?: any[];
    disableQueryHeader?: boolean;
    disableResize?: boolean;
    responses?: any;
    useVim: boolean;
    isActive: boolean;
    sharing?: SharingProps;
    fixedEndpoint?: boolean;
    endpoint: string;
    settings: ISettings;
}
export default class GraphQLEditorSession extends React.PureComponent<Props, {}> {
    fetcher: (graphQLRequest: GraphQLRequest) => Observable<FetchResult<Record<string, any>, Record<string, any>>>;
    render(): JSX.Element;
    private setRef;
    private handleOperationNameChange;
    private handleVariableChange;
    private handleQueryChange;
    private handleChangeHeaders;
    private handleClickHistory;
    private handleChangeEndpoint;
    private handleClickShare;
    private handleStopQuery;
    private shouldHideTracingResponse;
}
