export interface ApprovalRequest {
    id: string;
    toolName: string;
    action: string;
    parameters: any;
    riskLevel: 'low' | 'medium' | 'high' | 'critical';
    impact: string[];
    reversible: boolean;
    requestedAt: Date;
    requestedBy: string;
    status: 'pending' | 'approved' | 'rejected' | 'expired';
    approvedBy?: string;
    approvedAt?: Date;
    rejectedBy?: string;
    rejectedAt?: Date;
    rejectionReason?: string;
    ttl: number;
    expiresAt: Date;
    metadata?: Record<string, any>;
}
export interface ToolPolicy {
    toolName: string;
    description: string;
    actions: Record<string, ActionPolicy>;
    defaultPolicy?: ActionPolicy;
}
export interface ActionPolicy {
    action: string;
    requiresApproval: boolean;
    approvalLevel: 'user' | 'admin' | 'owner';
    riskLevel: 'low' | 'medium' | 'high' | 'critical';
    conditions?: PolicyCondition[];
    auditLog: boolean;
    autoApprove?: AutoApprovePolicy;
    notifyChannels?: string[];
}
export interface PolicyCondition {
    field: string;
    operator: 'equals' | 'contains' | 'greater_than' | 'less_than' | 'in' | 'not_in';
    value: any;
    combineWith?: 'and' | 'or';
}
export interface AutoApprovePolicy {
    enabled: boolean;
    conditions: PolicyCondition[];
    maxAutoApprovals?: number;
    timeWindow?: number;
}
export interface ApprovalStore {
    requests: Record<string, ApprovalRequest>;
    policies: Record<string, ToolPolicy>;
    auditLog: AuditLogEntry[];
}
export interface AuditLogEntry {
    id: string;
    timestamp: Date;
    userId: string;
    action: string;
    toolName: string;
    parameters: any;
    result: 'approved' | 'rejected' | 'auto_approved' | 'expired';
    riskLevel: string;
    metadata?: Record<string, any>;
}
export interface ApprovalNotification {
    id: string;
    requestId: string;
    userId: string;
    type: 'new_request' | 'approved' | 'rejected' | 'expired' | 'reminder';
    message: string;
    createdAt: Date;
    read: boolean;
}
export declare const HIGH_RISK_OPERATIONS: {
    'deployment-management': {
        deploy_to_production: {
            riskLevel: string;
            impact: string[];
        };
        rollback_deployment: {
            riskLevel: string;
            impact: string[];
        };
        delete_environment: {
            riskLevel: string;
            impact: string[];
        };
    };
    'process-automation': {
        execute_process: {
            riskLevel: string;
            impact: string[];
        };
        create_webhook_trigger: {
            riskLevel: string;
            impact: string[];
        };
        delete_all_processes: {
            riskLevel: string;
            impact: string[];
        };
    };
    'data-management': {
        clear_all_data: {
            riskLevel: string;
            impact: string[];
        };
        bulk_delete: {
            riskLevel: string;
            impact: string[];
        };
        export_sensitive_data: {
            riskLevel: string;
            impact: string[];
        };
    };
    'git-workflow': {
        force_push: {
            riskLevel: string;
            impact: string[];
        };
        delete_branch: {
            riskLevel: string;
            impact: string[];
        };
        reset_hard: {
            riskLevel: string;
            impact: string[];
        };
    };
    'business-guidance': {
        publish_financial_projection: {
            riskLevel: string;
            impact: string[];
        };
        send_investor_update: {
            riskLevel: string;
            impact: string[];
        };
    };
    'migration-management': {
        execute_migration: {
            riskLevel: string;
            impact: string[];
        };
        rollback_migration: {
            riskLevel: string;
            impact: string[];
        };
    };
};
//# sourceMappingURL=types.d.ts.map