import type { Meta } from '../types.js';
/** Why the owner sink cannot deliver from this box. */
export type OwnerSinkReason = 'rush-not-on-path' | 'rush-signed-out';
export interface OwnerSinkStatus {
    /** Owner delivery is configured for this fleet (humans.yaml / notify.owner).
     *  When false, no finding is emitted — an un-opted-in box is not "broken". */
    configured: boolean;
    /** This box can actually deliver an owner notification right now. */
    reachable: boolean;
    /** Resolved owner channel (e.g. `imessage`). */
    channel?: string;
    /** Resolved transport after `notify.transports` mapping (usually === channel). */
    transport?: string;
    /** Set only when `reachable` is false. */
    reason?: OwnerSinkReason;
}
/**
 * Probe whether THIS box can deliver an owner notification right now. Returns
 * `configured:false` (and the caller emits no finding) when the fleet has no
 * owner channel configured — an un-opted-in box is not broken. When configured,
 * reports whether the resolved transport can actually deliver from here.
 *
 * Only the concrete rush-backed failure the lane hits is reported as unreachable;
 * non-rush transports (desktop / mailbox / …) deliver locally and are treated as
 * reachable rather than probed, so this never invents a critical it cannot back.
 */
export declare function probeOwnerSink(meta: Meta): Promise<OwnerSinkStatus>;
