import type { SKYKOIConfig } from "../config/config.js";
export { resolveKoiIdFromSessionKey } from "../routing/session-key.js";
type KoiEntry = NonNullable<NonNullable<SKYKOIConfig["kois"]>["list"]>[number];
type ResolvedKoiConfig = {
    name?: string;
    workspace?: string;
    koiDir?: string;
    model?: KoiEntry["model"];
    skills?: KoiEntry["skills"];
    memorySearch?: KoiEntry["memorySearch"];
    humanDelay?: KoiEntry["humanDelay"];
    heartbeat?: KoiEntry["heartbeat"];
    identity?: KoiEntry["identity"];
    groupChat?: KoiEntry["groupChat"];
    subkois?: KoiEntry["subkois"];
    sandbox?: KoiEntry["sandbox"];
    tools?: KoiEntry["tools"];
};
/** Returns all configured koi IDs, or [DEFAULT_KOI_ID] if none configured. */
export declare function listKoiIds(cfg: SKYKOIConfig): string[];
/** Returns the default koi ID (first entry marked `default: true`, or first entry). */
export declare function resolveDefaultKoiId(cfg: SKYKOIConfig): string;
/**
 * Extracts the koi ID embedded in a session key (e.g. "koi:foo:session")
 * and returns both the default and session-specific koi IDs.
 */
export declare function resolveSessionKoiIds(params: {
    sessionKey?: string;
    config?: SKYKOIConfig;
}): {
    defaultKoiId: string;
    sessionKoiId: string;
};
/** Convenience wrapper: returns just the session-specific koi ID. */
export declare function resolveSessionKoiId(params: {
    sessionKey?: string;
    config?: SKYKOIConfig;
}): string;
/** Looks up full koi configuration (model, skills, sandbox, etc.) by koi ID. */
export declare function resolveKoiConfig(cfg: SKYKOIConfig, koiId: string): ResolvedKoiConfig | undefined;
/** Returns the skills allowlist for a koi, or undefined if unrestricted. */
export declare function resolveKoiSkillsFilter(cfg: SKYKOIConfig, koiId: string): string[] | undefined;
/** Returns the primary model ID for a koi, or undefined to use global default. */
export declare function resolveKoiModelPrimary(cfg: SKYKOIConfig, koiId: string): string | undefined;
/** Returns koi-specific model fallbacks, or undefined to use global fallbacks. */
export declare function resolveKoiModelFallbacksOverride(cfg: SKYKOIConfig, koiId: string): string[] | undefined;
/** Resolves the workspace directory for a koi (per-koi config → global default → convention). */
export declare function resolveKoiWorkspaceDir(cfg: SKYKOIConfig, koiId: string): string;
/** Resolves the koi data directory (for koi-specific state files). */
export declare function resolveKoiDir(cfg: SKYKOIConfig, koiId: string): string;
