import type { DiscoveredControl, DiscoveredControlCoverageOutcome, InteractionCoverageEvidence, InteractionCoverageKind } from "./types.js";
export type { DiscoveredControlCoverageOutcome, InteractionCoverageEvidence, InteractionCoverageKind, InteractionCoverageObligation, InteractionCoverageSerialization, InteractionCoverageWitnessRef, } from "./types.js";
export type DiscoveredControlCoverageEvidence = InteractionCoverageEvidence;
export type InteractionOracleBand = "blocking" | "blocking-conditional" | "advisory";
export type DiscoveredControlOracle = {
    kind: "aria-pressed-state-flip";
    band: "blocking";
} | {
    kind: "aria-declared-state";
    band: "advisory";
    state: string;
} | {
    kind: "required-form-validation";
    band: "blocking-conditional";
} | {
    kind: "dialog-disclosure-focus";
    band: "advisory";
} | {
    kind: "search-landmark-submit";
    band: "advisory";
} | {
    kind: "same-origin-link-navigation";
    band: "advisory";
} | {
    kind: "coverage-gap";
    reason: "no-discoverable-contract" | InteractionCoverageKind;
};
export type DiscoveredControlOracleObservation = {
    before?: string;
    after?: string;
    checkValidity?: boolean;
    invalidFired?: boolean;
    nativeSubmissionSuppressed?: boolean;
    explicitStateContradiction?: boolean;
    ariaModal?: boolean;
    backgroundOperable?: boolean;
    beforeOrigin?: string;
    afterOrigin?: string;
    navigated?: boolean;
    reacted?: boolean;
};
export type DiscoveredControlOracleResult = {
    kind: "pass";
} | {
    kind: "unproven";
    oracle: DiscoveredControlOracle["kind"];
    coverage?: DiscoveredControlCoverageOutcome;
} | {
    kind: "finding";
    band: InteractionOracleBand;
    oracle: DiscoveredControlOracle["kind"];
};
export declare function deriveDiscoveredControlOracle(control: DiscoveredControl, options?: {
    commandControls?: boolean;
    searchSubmission?: boolean;
}): DiscoveredControlOracle;
export declare function evaluateDiscoveredControlOracle(oracle: DiscoveredControlOracle, observation: DiscoveredControlOracleObservation): DiscoveredControlOracleResult;
//# sourceMappingURL=oracles.d.ts.map