export type EscalationTriggerType = 'human_authorized' | 'multi_witness';
export type ActionClass = 'tentative' | 'compensable' | 'irreversible';
export interface EscalationGrant {
    grantId: string;
    delegationId: string;
    grantedTo: string;
    grantedBy: string;
    ceiling: {
        scope: string[];
        maxSpend: number;
        maxDurationMs: number;
    };
    allowedTriggers: EscalationTriggerType[];
    allowedActionClasses: ActionClass[];
    createdAt: string;
    expiresAt: string;
    signature: string;
}
export interface EscalationRequest {
    requestId: string;
    grantId: string;
    agentPublicKey: string;
    trigger: {
        type: EscalationTriggerType;
        evidence: string;
        humanApprovalSignature?: string;
    };
    requestedAt: string;
    signature: string;
}
export interface ActiveEscalation {
    escalationId: string;
    grantId: string;
    requestId: string;
    agentPublicKey: string;
    effectiveScope: string[];
    effectiveSpendLimit: number;
    activatedAt: string;
    expiresAt: string;
    status: 'active' | 'expired' | 'revoked';
    provisionalReceipts: string[];
    spentDuringEscalation: number;
    gatewaySignature: string;
}
export interface EscalationVerification {
    valid: boolean;
    errors: string[];
    grantValid: boolean;
    ceilingWithinScope: boolean;
    triggerAccepted: boolean;
    temporalValid: boolean;
}
export declare function createEscalationGrant(opts: {
    delegationId: string;
    grantedTo: string;
    grantedBy: string;
    granterPrivateKey: string;
    ceiling: EscalationGrant['ceiling'];
    allowedTriggers?: EscalationTriggerType[];
    allowedActionClasses?: ActionClass[];
    expiresAt: string;
}): EscalationGrant;
export declare function verifyEscalationGrant(grant: EscalationGrant, granterScope: string[]): EscalationVerification;
export declare function requestEscalation(opts: {
    grant: EscalationGrant;
    agentPrivateKey: string;
    agentPublicKey: string;
    trigger: EscalationRequest['trigger'];
}): EscalationRequest;
export declare function activateEscalation(opts: {
    grant: EscalationGrant;
    request: EscalationRequest;
    gatewayPrivateKey: string;
}): ActiveEscalation;
export declare function checkEscalatedAction(opts: {
    escalation: ActiveEscalation;
    grant: EscalationGrant;
    action: string;
    actionClass: ActionClass;
    spend?: number;
}): {
    permitted: boolean;
    errors: string[];
    effectClass: ActionClass;
};
export declare function revokeEscalation(escalation: ActiveEscalation): ActiveEscalation;
export declare function isEscalationActive(escalation: ActiveEscalation): boolean;
//# sourceMappingURL=escalation.d.ts.map