export type IntegrationPhase = "preflight" | "connect" | "execute" | "verify" | "cleanup";
export interface PhaseResult {
    phase: IntegrationPhase;
    status: "pass" | "fail" | "skipped";
    durationMs?: number;
    errorMessage?: string;
}
export interface IntegrationRunResult {
    evalId: string;
    runId: string;
    phases: PhaseResult[];
    overallPass: boolean;
    testArtifactIds: string[];
    dryRun: boolean;
}
export interface PlatformRateLimit {
    requestsPerMinute: number;
}
export interface IntegrationRequirements {
    chromeProfile?: string;
    chromeProfilePath?: string;
    platform?: string;
    rateLimit?: PlatformRateLimit;
}
export interface CleanupAction {
    type: "delete_post" | "remove_artifact" | "custom";
    description: string;
    execute?: () => Promise<void>;
}
export interface IntegrationEvalCase {
    id: number | string;
    name: string;
    prompt: string;
    expected_output: string;
    assertions: Array<{
        id: string;
        text: string;
        type: string;
    }>;
    testType: "integration";
    requiredCredentials?: string[];
    requirements?: IntegrationRequirements;
    cleanup?: CleanupAction[];
}
export interface IntegrationRunOpts {
    dryRun?: boolean;
    confirm?: boolean;
    skillDir: string;
    runId?: string;
}
/** Default rate limits per platform (requests per minute). */
export declare const DEFAULT_RATE_LIMITS: Record<string, PlatformRateLimit>;
export declare const DEFAULT_RATE_LIMIT: PlatformRateLimit;
export declare const VALID_CLEANUP_ACTIONS: readonly ["delete_post", "remove_artifact", "custom"];
export type CleanupActionType = typeof VALID_CLEANUP_ACTIONS[number];
export interface EvalCleanupSchema {
    action: CleanupActionType;
    platform?: string;
    identifier?: string;
    description?: string;
}
export interface EvalRequirementsSchema {
    chromeProfile?: string;
    platform?: string;
}
