import * as http from "node:http";
import type { JsonObject } from "../sync/json-path.js";
import { type RemoteEnvironmentStatus } from "./remote-environment.js";
import { type StatusProbe } from "./ui-status.js";
import { type GateReportDependencies } from "./ui-gate-report.js";
import { type UiHealthDependencies } from "./ui-health.js";
import { type SetupReadinessDependencies } from "./ui-setup-readiness.js";
export { createGithubAuthProbe, runProbe, type GitRemoteReader, type GithubAuthCheck, type ProbeResult, type StatusProbe, } from "./ui-status.js";
export { createGithubRepoProbe } from "./ui-github-repo.js";
export { createEnabledPluginsProbe, buildEnabledPluginsValue, listMarketplacePluginsFromDisk, type EnabledPluginRow, type EnabledPluginsValue, type MarketplacePlugin, } from "./ui-enabled-plugins.js";
export { createDeployPipelineProbe, DEPLOY_PIPELINE_PROBE_ID, type DeployPipelineStage, type DeployPipelineValue, } from "./ui-deploy-pipeline.js";
export { createDetectedStacksProbe, DETECTED_STACKS_PROBE_ID, } from "./ui-detected-stacks.js";
export { createLisaVersionProbe, mapLisaVersionCheck, type LisaVersionValue, } from "./ui-lisa-version.js";
export { createCiQualityJobsProbe, computeCiQualityJobs, parseCiWorkflowInputs, CI_QUALITY_JOBS_PROBE_ID, type CiQualityJobEntry, type CiQualityJobsValue, type CiWorkflowInputs, type RepoSecretsPresence, } from "./ui-ci-quality-jobs.js";
export { createObservabilityProviderProbes } from "./ui-observability-providers.js";
export { createGateReportHandler, readGateReport, type GateReportDependencies, type GateReportResponse, } from "./ui-gate-report.js";
export { inspectRemoteEnvironment } from "./remote-environment.js";
/** Default port for the settings console. */
export declare const DEFAULT_UI_PORT = 4780;
/** CLI options for `lisa ui`. */
export interface UiCmdOptions {
    /** Port to listen on (string because Commander passes raw option values) */
    readonly port?: string;
    /** Set false (via --no-sync) to skip the config sync on startup */
    readonly sync?: boolean;
}
/** Injectable runtime collaborators for `lisa ui`. */
export interface UiRuntimeDependencies {
    /** Status probes exposed by GET /api/status. */
    readonly probes?: readonly StatusProbe[];
    /** Health storage and execution boundaries exposed by /api/health. */
    readonly health?: Partial<UiHealthDependencies>;
    /** Read-only setup-readiness boundaries exposed by /api/setup-readiness. */
    readonly setupReadiness?: SetupReadinessDependencies;
    /** Read-only gate-report boundaries exposed by /api/gate-report. */
    readonly gateReport?: GateReportDependencies;
}
/**
 * Locate the packaged `ui/index.html` by walking up from this module until a
 * directory containing `ui/index.html` is found (works from both `src/` and
 * the compiled `dist/`).
 * @param startDir - Directory to start searching from
 * @returns Absolute path to ui/index.html
 */
export declare function findUiHtml(startDir: string): string;
/**
 * Inject the live config into the console HTML as a script tag. The JSON is
 * escaped so a value containing `</script>` cannot break out of the tag.
 * @param html - Packaged console HTML
 * @param config - Merged live config
 * @param remoteEnvironment - Boolean-only secret and startup-artifact status
 * @returns HTML with the injected config
 */
export declare function injectLiveConfig(html: string, config: JsonObject, remoteEnvironment?: RemoteEnvironmentStatus): string;
/**
 * Run the `lisa ui` command: sync, then serve the console until interrupted.
 * @param targetPath - Project path argument (defaults to the current directory)
 * @param options - CLI options
 * @param dependencies - Optional status probes for tests and extensions
 * @returns The listening server (callers/tests are responsible for closing it)
 */
export declare function runUi(targetPath: string | undefined, options?: UiCmdOptions, dependencies?: UiRuntimeDependencies): Promise<http.Server>;
//# sourceMappingURL=ui-cmd.d.ts.map