export type Attachment = {
    name?: string;
    contentType?: string;
    url: string;
};
export type Message = {
    id: string;
    content: string;
    timestamp: number;
    sender: string;
    attachments?: Attachment[];
    role?: 'user' | 'assistant' | 'system';
};
interface AgentChatState {
    chats: Record<string, Message[]>;
    agentIsTyping: Record<string, boolean>;
    addMessage: (agentId: string, message: Message) => void;
    setMessages: (agentId: string, messages: Message[]) => void;
    clearChat: (agentId: string) => void;
    setAgentIsTyping: (agentId: string, isTyping: boolean) => void;
    createUserMessage: (content: string) => Message;
    createAssistantMessage: (content: string, sender: string) => Message;
    createSystemMessage: (content: string) => Message;
}
export declare const useAgentChatStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<AgentChatState>, "persist"> & {
    persist: {
        setOptions: (options: Partial<import("zustand/middleware").PersistOptions<AgentChatState, unknown>>) => void;
        clearStorage: () => void;
        rehydrate: () => Promise<void> | void;
        hasHydrated: () => boolean;
        onHydrate: (fn: (state: AgentChatState) => void) => () => void;
        onFinishHydration: (fn: (state: AgentChatState) => void) => () => void;
        getOptions: () => Partial<import("zustand/middleware").PersistOptions<AgentChatState, unknown>>;
    };
}>;
export {};
