import type { ClientOptions } from 'openai/client';
import { OpenAI } from 'openai/client';
import type { ResponseCreateParamsStreaming } from 'openai/resources/responses/responses';
import { ResponseStream } from './ResponseStream';
type ExtraClientOptions = {
    model?: string;
    agent?: string;
    project?: string;
};
type ConversationItemsPage = OpenAI.Conversations.ConversationItemsPage;
type BaseSummarizePayload = {
    conversation: string;
    promptForSummarization?: string;
    joinItems?: (items: ConversationItemsPage) => string;
    metadata?: ResponseCreateParamsStreaming['metadata'];
};
type SummarizeConversationPayload = (BaseSummarizePayload & {
    byLastItems?: number;
}) | (BaseSummarizePayload & {
    byFirstItems?: number;
});
export declare class OpenAIService extends OpenAI {
    model?: string;
    agent?: string;
    constructor(options: ClientOptions & ExtraClientOptions);
    setModel(model: string): void;
    createResponseStream(payload: ResponseCreateParamsStreaming): Promise<ResponseStream>;
    getAllConvItems(convId: string, fetchBy?: number, order?: 'asc' | 'desc'): Promise<OpenAI.Conversations.Items.ConversationItem[]>;
    summarizeConvTitle(summarizePayload: SummarizeConversationPayload): Promise<string>;
    private joinConvItemsForSummarizingTitle;
    private getMetadataForResponse;
    private iterateByConvItems;
}
export {};
