import React from 'react';
import { Command } from 'commander';
import { GuildAPIClient } from '../lib/api-client.js';
import { SessionEvent, Session } from '../lib/session-events.js';
import { fetchEvents, fetchTasks } from '../lib/session-events-fetch.js';
/** Thrown when no workspace is configured (no --workspace flag, no config). */
export declare class WorkspaceNotConfiguredError extends Error {
    constructor();
}
/** Thrown when the specified workspace ID is not found in the backend. */
export declare class WorkspaceNotFoundError extends Error {
    readonly workspaceId: string;
    constructor(workspaceId: string);
}
/**
 * ChatApp wrapper component that shows splash animation during connection
 * and then transitions to ChatUIWithConnection once connected.
 */
export interface ChatAppProps {
    initialPrompt: string;
    version: string;
    workspaceId?: string;
    versionId?: string;
    agentName?: string;
    showSplash?: boolean;
    resumeSession?: Session;
    resumeEvents?: SessionEvent[];
    resumeCommand?: string;
    openDashboard?: boolean;
    eventFilter?: Set<string>;
}
export declare function ChatApp({ initialPrompt, version, workspaceId, versionId, agentName, showSplash, resumeSession, resumeEvents, resumeCommand, openDashboard, eventFilter, }: ChatAppProps): React.JSX.Element;
/**
 * Chat UI that accepts a pre-established connection from ChatApp
 */
interface ChatUIWithConnectionProps {
    initialPrompt: string;
    version: string;
    versionId?: string;
    agentName?: string;
    client: GuildAPIClient | null;
    session: Session | null;
    onFirstMessage?: () => void;
    isVisible?: boolean;
    resumeEvents?: SessionEvent[];
    resumeCommand?: string;
    eventFilter?: Set<string>;
    fetchEventsFn?: typeof fetchEvents;
    fetchTasksFn?: typeof fetchTasks;
}
export declare function ChatUIWithConnection({ initialPrompt, version: _version, versionId: _versionId, agentName, client: preConnectedClient, session: preConnectedSession, onFirstMessage, isVisible, resumeEvents, resumeCommand, eventFilter, fetchEventsFn, fetchTasksFn, }: ChatUIWithConnectionProps): React.JSX.Element | null;
export declare function ensureAuthenticated(): Promise<string>;
export declare function createSession(client: GuildAPIClient, workspaceId: string | undefined, initialPrompt: string, versionId?: string, onProgress?: (status: string) => void): Promise<Session>;
export declare function createChatCommand(): Command;
export declare function handleChatAction(_promptArgs: string[], _options: Record<string, unknown>): Promise<void>;
export {};
//# sourceMappingURL=chat.d.ts.map