import type { ModelCatalogEntry } from "../../agents/model-catalog.js";
import { type ModelAliasIndex } from "../../agents/model-selection.js";
import type { SessionEntry } from "../../config/sessions/types.js";
import type { DaoCoreConfig } from "../../config/types.daocore.js";
import type { InlineDirectives } from "./directive-handling.parse.js";
import type { ThinkLevel } from "./directives.js";
export type PersistedThinkingLevelRemap = {
    from: ThinkLevel;
    to: ThinkLevel;
    provider: string;
    model: string;
};
export declare function persistInlineDirectives(params: {
    directives: InlineDirectives;
    effectiveModelDirective?: string;
    cfg: DaoCoreConfig;
    agentDir?: string;
    sessionEntry?: SessionEntry;
    sessionStore?: Record<string, SessionEntry>;
    sessionKey?: string;
    storePath?: string;
    elevatedEnabled: boolean;
    elevatedAllowed: boolean;
    defaultProvider: string;
    defaultModel: string;
    aliasIndex: ModelAliasIndex;
    allowedModelKeys: Set<string>;
    provider: string;
    model: string;
    initialModelLabel: string;
    formatModelSwitchEvent: (label: string, alias?: string) => string;
    agentCfg: NonNullable<DaoCoreConfig["agents"]>["defaults"] | undefined;
    messageProvider?: string;
    surface?: string;
    gatewayClientScopes?: string[];
    senderIsOwner?: boolean;
    markLiveSwitchPending?: boolean;
    thinkingCatalog?: ModelCatalogEntry[];
}): Promise<{
    provider: string;
    model: string;
    contextTokens: number;
    thinkingRemap?: PersistedThinkingLevelRemap;
}>;
