import type { HealthResult } from "../health/contract.js";
import type { JsonObject } from "../sync/json-path.js";
import { type AutomationsProbeValue } from "./ui-automations.js";
import { type SetupReadinessResult } from "./ui-setup-readiness-contract.js";
import { type GithubRepoPanelValue } from "./ui-github-repo.js";
import { type DeployPipelineValue } from "./ui-deploy-pipeline.js";
import { type ProbeResult } from "./ui-status.js";
/** Bounded inputs captured for one projection. */
export interface SetupReadinessObservations {
    readonly config: JsonObject;
    readonly health?: HealthResult;
    readonly github: ProbeResult<GithubRepoPanelValue>;
    readonly deployPipeline: ProbeResult<DeployPipelineValue>;
    readonly automations: ProbeResult<AutomationsProbeValue>;
    readonly expectedAutomationIds?: readonly string[];
    readonly expectedSecretNames: readonly string[];
    readonly observedAt?: Date;
}
/** Injectable readers for endpoint and focused integration tests. */
export interface SetupReadinessDependencies {
    readonly readConfig?: (projectRoot: string) => Promise<JsonObject>;
    readonly readHealth?: (projectRoot: string) => Promise<HealthResult>;
    readonly readGithub?: (projectRoot: string, config: JsonObject) => Promise<ProbeResult<GithubRepoPanelValue>>;
    readonly readDeployPipeline?: (projectRoot: string) => Promise<ProbeResult<DeployPipelineValue>>;
    readonly readAutomations?: (projectRoot: string) => Promise<ProbeResult<AutomationsProbeValue>>;
    readonly readExpectedAutomationIds?: (projectRoot: string, config: JsonObject) => Promise<readonly string[]>;
    readonly readExpectedSecretNames?: (projectRoot: string) => Promise<readonly string[]>;
    readonly now?: () => Date;
}
/**
 * Read the same committed-plus-local merged config used by the console.
 * @param projectRoot - Project root whose Lisa config should be read.
 * @returns The bounded merged UI configuration.
 */
export declare function readMergedUiConfig(projectRoot: string): Promise<JsonObject>;
/**
 * Produce the exact twelve findings from already captured observations.
 * @param projectRoot - Canonical project root for local evidence checks.
 * @param observations - Bounded observations captured for this projection.
 * @returns The validated twelve-finding readiness result.
 */
export declare function projectSetupReadiness(projectRoot: string, observations: SetupReadinessObservations): Promise<SetupReadinessResult>;
/**
 * Create a safe-to-repeat reader for one localhost UI server.
 * @param projectPath - Project path served by the local UI.
 * @param dependencies - Optional bounded reader overrides for verification.
 * @returns A read-only readiness projection reader.
 */
export declare function createSetupReadinessReader(projectPath: string, dependencies?: SetupReadinessDependencies): () => Promise<SetupReadinessResult>;
export type { SetupReadinessCheck, SetupReadinessFinding, SetupReadinessResult, } from "./ui-setup-readiness-contract.js";
export { SETUP_READINESS_CHECKS, validateSetupReadinessResult, } from "./ui-setup-readiness-contract.js";
//# sourceMappingURL=ui-setup-readiness.d.ts.map