/**
 * releaseReadinessWiring — builds the real I/O dependencies for the
 * ReleaseReadinessSentinel (Layer B of release-readiness-visibility).
 *
 * Extracted from server.ts so the dependency construction is itself
 * unit-testable (Testing Integrity Standard: every dependency-injected
 * component needs wiring-integrity tests proving deps are real functions, not
 * nulls or silent no-ops).
 *
 * Repo-gated: the sentinel analyzes the instar git repo, which only exists in
 * the dev/maintainer environment. `isAnalyzableRepo` lets the server decide
 * whether to construct + start the sentinel at all on a given install.
 *
 * All git goes through SafeGitExecutor (audited funnel, execFileSync — no shell).
 * Canonical-remote reads are allow-listed to github.com:JKHeadley/instar so a
 * config override to a fork raises a HIGH-priority signal rather than silently
 * trusting a stale fork (spec §4.2.2).
 */
import type { ReleaseReadinessSentinelDeps, ReadinessState, AttentionItem } from './ReleaseReadinessSentinel.js';
/** Anchored on the known canonical host — not "any URL ending in JKHeadley/instar". */
export declare const CANONICAL_REMOTE_RE: RegExp;
export interface ReleaseReadinessWiringOpts {
    /** The instar git checkout to analyze (Echo: the agent home). */
    repoPath: string;
    /** Path to .instar/state/release-readiness.json. */
    statePath: string;
    /** Path to logs/sentinel-events.jsonl. */
    auditPath: string;
    /** Local server port + auth for Attention posting. */
    port: number;
    authToken: string;
    /** Configured canonical remote name (default: auto-detect a JKHeadley/instar remote). */
    canonicalRemote?: string;
    fetchTimeoutMs?: number;
    fetchImpl?: typeof fetch;
    now?: () => number;
}
/** Is `repoPath` an instar git checkout we can actually analyze? */
export declare function isAnalyzableRepo(repoPath: string): boolean;
/** Resolve the canonical-main remote name and whether it was overridden to a non-canonical URL. */
export declare function resolveCanonicalRemote(repoPath: string, configured?: string): {
    remote: string;
    overridden: boolean;
};
export declare function buildReleaseReadinessDeps(opts: ReleaseReadinessWiringOpts): ReleaseReadinessSentinelDeps;
export declare function loadReadinessState(statePath: string, canonicalRemoteOverridden?: boolean): ReadinessState;
export declare function saveReadinessState(statePath: string, state: ReadinessState): void;
export type AttentionPoster = (item: AttentionItem) => Promise<boolean>;
export declare function makeAttentionPoster(opts: {
    port: number;
    authToken: string;
    fetchImpl?: typeof fetch;
}): AttentionPoster;
//# sourceMappingURL=releaseReadinessWiring.d.ts.map