import type { Logger } from 'pino';
import type { AsyncThunkOptions } from '../../app/async-thunk-options.js';
import type { ClientThunkExtraArguments } from '../../app/thunk-extra-arguments.js';
import type { GeneratedAnswerErrorPayload } from '../../features/generated-answer/generated-answer-actions.js';
import type { SearchAppState } from '../../state/search-app-state.js';
import type { GeneratedAnswerStreamEventData } from './generated-answer-event-payload.js';
import type { GeneratedAnswerStreamRequest } from './generated-answer-request.js';
export interface GeneratedAnswerAPIClientOptions {
    logger: Logger;
}
export interface AsyncThunkGeneratedAnswerOptions<T extends Partial<SearchAppState>> extends AsyncThunkOptions<T, ClientThunkExtraArguments<GeneratedAnswerAPIClient>> {
}
export declare const RETRYABLE_STREAM_ERROR_CODE = 1;
interface StreamCallbacks {
    write: (data: GeneratedAnswerStreamEventData) => void;
    abort: (error: GeneratedAnswerErrorPayload) => void;
    close: () => void;
    resetAnswer: () => void;
}
export declare class GeneratedAnswerAPIClient {
    private logger;
    constructor(options: GeneratedAnswerAPIClientOptions);
    streamGeneratedAnswer(params: GeneratedAnswerStreamRequest, callbacks: StreamCallbacks): AbortController | undefined;
}
export {};
