import { RuntimeMessage } from './messages';
import { ChatWidgetSettings, SendMessage, SessionOptions, TurnProps, SessionStatus } from '../../types';
import { ChatConfig } from '../../dtos/ChatConfig.dto';
import { TraceDeclaration } from '@voiceflow/sdk-runtime';

export interface Settings {
    assistant: ChatWidgetSettings;
    config: ChatConfig;
    traceHandlers?: TraceDeclaration<RuntimeMessage, any>[];
}
export declare const useRuntimeState: ({ assistant, config, traceHandlers }: Settings) => {
    state: {
        session: Required<SessionOptions>;
        isOpen: boolean;
        indicator: boolean;
        audioOutput: boolean;
    };
    api: {
        launch: () => Promise<void>;
        reply: (message: string) => Promise<void>;
        open: () => Promise<void>;
        interact: SendMessage;
        close: () => void;
        stopChat: () => void;
        addTurn: (turn: TurnProps) => void;
        feedback: (name: import('./useRuntimeAPI').FeedbackName, lastTurnMessages: import('../../components/SystemResponse').MessageProps[], userTurn: import('../../types').UserTurnProps | null) => Promise<void>;
        setStatus: (status: SessionStatus) => void;
        setOpen: import('react').Dispatch<import('react').SetStateAction<boolean>>;
        isStatus: (status: SessionStatus) => boolean;
        reset: () => void;
        getTurns: () => TurnProps[];
        setIndicator: import('react').Dispatch<import('react').SetStateAction<boolean>>;
        setAudioOutput: import('react').Dispatch<import('react').SetStateAction<boolean>>;
        toggleAudioOutput: () => void;
        assistant: ChatWidgetSettings;
        config: ChatConfig;
    };
};
export type RuntimeState = ReturnType<typeof useRuntimeState>;
//# sourceMappingURL=useRuntimeState.d.ts.map