import { ServicesAccessor } from "../../../../platform/instantiation/common/instantiation.js";
import { RawContextKey } from "../../../../platform/contextkey/common/contextkey.js";
export declare enum ChatConfiguration {
    AgentEnabled = "chat.agent.enabled",
    Edits2Enabled = "chat.edits2.enabled",
    ExtensionToolsEnabled = "chat.extensionTools.enabled",
    EditRequests = "chat.editRequests",
    GlobalAutoApprove = "chat.tools.global.autoApprove",
    AutoApproveEdits = "chat.tools.edits.autoApprove",
    EligibleForAutoApproval = "chat.tools.eligibleForAutoApproval",
    EnableMath = "chat.math.enabled",
    CheckpointsEnabled = "chat.checkpoints.enabled",
    AgentSessionsViewLocation = "chat.agentSessionsViewLocation",
    ThinkingStyle = "chat.agent.thinkingStyle",
    TodosShowWidget = "chat.tools.todos.showWidget",
    UseCloudButtonV2 = "chat.useCloudButtonV2",
    ShowAgentSessionsViewDescription = "chat.showAgentSessionsViewDescription",
    EmptyStateHistoryEnabled = "chat.emptyState.history.enabled",
    NotifyWindowOnResponseReceived = "chat.notifyWindowOnResponseReceived",
    SubagentToolCustomAgents = "chat.customAgentInSubagent.enabled"
}
/**
 * The "kind" of agents for custom agents.
 */
export declare enum ChatModeKind {
    Ask = "ask",
    Edit = "edit",
    Agent = "agent"
}
export declare function validateChatMode(mode: unknown): ChatModeKind | undefined;
export declare function isChatMode(mode: unknown): mode is ChatModeKind;
export declare enum ThinkingDisplayMode {
    Collapsed = "collapsed",
    CollapsedPreview = "collapsedPreview",
    FixedScrolling = "fixedScrolling"
}
export type RawChatParticipantLocation = "panel" | "terminal" | "notebook" | "editing-session";
export declare enum ChatAgentLocation {
    /**
     * This is chat, whether it's in the sidebar, a chat editor, or quick chat.
     * Leaving the values alone as they are in stored data so we don't have to normalize them.
     */
    Chat = "panel",
    Terminal = "terminal",
    Notebook = "notebook",
    /**
     * EditorInline means inline chat in a text editor.
     */
    EditorInline = "editor"
}
export declare namespace ChatAgentLocation {
    function fromRaw(value: RawChatParticipantLocation | string): ChatAgentLocation;
}
export declare function isSupportedChatFileScheme(accessor: ServicesAccessor, scheme: string): boolean;
export declare const AGENT_SESSIONS_VIEWLET_ID = "workbench.view.chat.sessions";
export declare const MANAGE_CHAT_COMMAND_ID = "workbench.action.chat.manage";
export declare const ChatEditorTitleMaxLength = 30;
export declare const CHAT_TERMINAL_OUTPUT_MAX_PREVIEW_LINES = 1000;
export declare const CONTEXT_MODELS_EDITOR: RawContextKey<boolean>;
export declare const CONTEXT_MODELS_SEARCH_FOCUS: RawContextKey<boolean>;
