import { OnMount } from '@monaco-editor/react'; import { ApolloClient } from '@apollo/client'; import { MonacoEditorType } from '../monaco'; import { Template } from '../constants/template'; import { ExecutionStatsData } from '../components/executionStats/types'; type ExecutionResult = { queryText: string; variables: string; result: string; responseTimeMs: number; }; type Params = { tabStateType: Template.QUERY_EXECUTOR | Template.MUTATION_EXECUTOR; client: ApolloClient; tabId: string; onExecutionComplete?: (data: ExecutionResult) => void; }; type ReturnType = { onInputMount: OnMount; onVariableMount: OnMount; onOutputMount: OnMount; onSubmit: () => void; onSelect: (params: { input: string; variables?: string; output?: string; }) => void; loading: boolean; stats: ExecutionStatsData | null; inputEditorRef: React.MutableRefObject; variableEditorRef: React.MutableRefObject; }; export declare const useGraphQLExecutor: ({ tabStateType, client, tabId, onExecutionComplete }: Params) => ReturnType; export {};