import type { Action } from "../../../types/common.js";
export declare enum HeaderAction {
    NewChat = "newChat",
    History = "history",
    Folding = "folding",
    Close = "close"
}
export type HeaderActionTooltipTexts = Partial<Record<Exclude<HeaderAction, HeaderAction.Folding>, string>> & {
    /** Tooltip texts for {@link HeaderAction.Folding}. */
    [HeaderAction.Folding]?: Partial<Record<'collapsed' | 'opened', string>>;
};
export type HeaderProps = {
    icon?: React.ReactNode;
    title?: string;
    preview?: React.ReactNode;
    baseActions?: HeaderAction[];
    handleNewChat?: () => void;
    handleHistoryToggle?: () => void;
    handleFolding?: (value: 'collapsed' | 'opened') => void;
    handleClose?: () => void;
    additionalActions?: Action[];
    /**
     * Notification callback fired by ChatContainer when the history popup is toggled
     * via the Header action button. Receives the next open state (the value the chat
     * will be in after the toggle).
     */
    onHistoryToggle?: (open: boolean) => void;
    historyButtonRef?: React.RefObject<HTMLElement>;
    foldingState?: 'collapsed' | 'opened';
    titlePosition?: 'left' | 'center';
    withIcon?: boolean;
    showTitle?: boolean;
    className?: string;
    /** QA/test identifier on header root */
    qa?: string;
    /** Per base action `data-qa` (defaults to `header-action-${id}`) */
    actionQa?: Partial<Record<HeaderAction, string>>;
    /**
     * Override tooltip texts per base action. When a value is undefined, the built-in
     * localized string is used (e.g. `i18n('action-tooltip-newChat')`).
     */
    actionTooltipTexts?: HeaderActionTooltipTexts;
};
