import type { ChatMessage, InstructionType, TaskProgress } from '../types';
export declare class ChatService {
    private static instance;
    private messages;
    private chatId;
    private isTaskRunning;
    private activeTaskId;
    private taskProgress;
    private currentMode;
    private isOpen;
    private isMinimized;
    private isLoading;
    private constructor();
    static getInstance(): ChatService;
    initialize(chatId: string | null): void;
    createInitialContext(chatId: string): void;
    getMessages(): ChatMessage[];
    getIsLoading(): boolean;
    getIsTaskRunning(): boolean;
    getActiveTaskId(): string | null;
    getTaskProgress(): TaskProgress[];
    getCurrentMode(): InstructionType;
    getIsOpen(): boolean;
    getIsMinimized(): boolean;
    addMessage(message: ChatMessage): void;
    updateMessage(messageId: string, updates: Partial<ChatMessage>): void;
    removeMessage(messageId: string): void;
    setMessages(messages: ChatMessage[]): void;
    clearMessages(): void;
    setTaskState(isRunning: boolean, taskId: string | null, progress: TaskProgress[]): void;
    setMode(mode: InstructionType): void;
    setWidgetState(isOpen: boolean, isMinimized: boolean): void;
    setIsLoading(loading: boolean): void;
    private restoreState;
    private persistState;
}
export declare const chatService: ChatService;
export declare function createUserMessage(content: string, mode?: InstructionType, idPrefix?: string): ChatMessage;
export declare function createAgentMessage(content: string, mode?: InstructionType, messageId?: string, idPrefix?: string): ChatMessage;
export declare function createSystemMessage(content: string, mode?: InstructionType, sender?: 'user' | 'agent', idPrefix?: string): ChatMessage;
export declare function createPlaceholderMessage(mode?: InstructionType, placeholderState?: 'thinking' | 'waiting-for-user'): ChatMessage;
export declare function createScreenAccessRequestMessage(mode?: InstructionType): ChatMessage;
export declare function createStartedScreenshareMessage(mode?: InstructionType): ChatMessage;
export declare function createScreenshareMessage(stream: MediaStream, mode?: InstructionType): ChatMessage;
export declare function createErrorMessage(content: string, mode?: InstructionType, originalMessageId?: string): ChatMessage;
//# sourceMappingURL=ChatService.d.ts.map