import { type AIConfig, type AIProfile, type AIScopeRef } from './ai-config.js';
export declare function createAppAIScopeRef(appId: string, surfaceId?: string): AIScopeRef;
export declare function isAppAIScopeRef(scopeRef: AIScopeRef | null | undefined): boolean;
export declare function assertAppAIScopeRef(scopeRef: AIScopeRef | null | undefined): AIScopeRef;
export type AppFirstLaunchProfileSource = 'recommended-profile' | 'account-default-profile';
export type AppManifestRequirementGap = {
    requirementId: string;
    detail: string;
};
export type AppAIConfigSetupRepairPlan = {
    unmetRequirements: AppManifestRequirementGap[];
};
export type AppFirstLaunchAIConfigResult = {
    outcome: 'initialized';
    scopeRef: AIScopeRef;
    config: AIConfig;
    profileSource: AppFirstLaunchProfileSource;
    profileId: string;
    setupRepairPlan: AppAIConfigSetupRepairPlan | null;
} | {
    outcome: 'already-initialized';
    scopeRef: AIScopeRef;
    config: AIConfig;
};
export type ResolvedRecommendedProfile = {
    profile: AIProfile;
    manifestSatisfied: boolean;
};
export type EnsureAppFirstLaunchAIConfigDeps = {
    scopeRef: AIScopeRef;
    getExistingAppAIConfig: (scopeRef: AIScopeRef) => Promise<AIConfig | null> | AIConfig | null;
    resolveRecommendedProfile: (scopeRef: AIScopeRef) => Promise<ResolvedRecommendedProfile | null> | ResolvedRecommendedProfile | null;
    resolveAccountDefaultProfile: () => Promise<AIProfile | null> | AIProfile | null;
    applyHostAiConfig: (scopeRef: AIScopeRef, config: AIConfig) => Promise<AIConfig> | AIConfig;
    validateManifestRequirements?: (scopeRef: AIScopeRef, config: AIConfig) => Promise<AppManifestRequirementGap[]> | AppManifestRequirementGap[];
};
export declare function ensureAppFirstLaunchAIConfig(deps: EnsureAppFirstLaunchAIConfigDeps): Promise<AppFirstLaunchAIConfigResult>;
//# sourceMappingURL=app-ai-config.d.ts.map