/**
 * Approval-surface helpers.
 *
 * Approval gating is a runtime-owned concern: headful surfaces may prompt,
 * headless surfaces must deterministically allow or deny.
 */
import type { AgentApprovalSurface } from '../../core/permission-policy.js';
export interface ApprovalSurfaceContext {
    hasUI?: boolean;
}
export interface ApprovalExecutionDecisionInput {
    surface: AgentApprovalSurface;
    gateAvailable?: boolean;
    isSafe: boolean;
    isAutoApproved: boolean;
    alwaysRequireExplicitApproval: boolean;
    allowHeadlessApproval?: boolean;
}
export type ApprovalExecutionDecision = 'allow' | 'prompt' | 'deny';
/** Determines whether the current execution context can display approval UI. */
export declare function getApprovalSurface(ctx: ApprovalSurfaceContext | undefined): AgentApprovalSurface;
/** Resolves an approval-gated execution request into allow, prompt, or deny. */
export declare function resolveApprovalExecutionDecision(input: ApprovalExecutionDecisionInput): ApprovalExecutionDecision;
//# sourceMappingURL=approval-surface.d.ts.map