/**
 * System Isolation Action
 *
 * Automated system isolation for incident containment.
 * Provides network isolation, session termination, and access restriction.
 *
 * @packageDocumentation
 * @module security/incident/actions/isolate-system
 */
import type { ActionDefinition } from '../types.js';
export interface IsolationTarget {
    type: 'server' | 'container' | 'service' | 'network_segment' | 'user_account';
    identifier: string;
    metadata?: Record<string, unknown>;
}
export interface IsolationResult {
    targetId: string;
    isolated: boolean;
    method: string;
    previousState: Record<string, unknown>;
    timestamp: Date;
}
export interface IsolationRollbackData {
    isolations: IsolationResult[];
    incidentId: string;
}
export interface IsolationService {
    /** Isolate a network segment by applying firewall rules */
    isolateNetworkSegment(segmentId: string): Promise<{
        success: boolean;
        previousRules: unknown[];
    }>;
    /** Remove a container/service from network */
    isolateContainer(containerId: string): Promise<{
        success: boolean;
        previousNetwork: string;
    }>;
    /** Block external access to a server */
    isolateServer(serverId: string): Promise<{
        success: boolean;
        previousConfig: Record<string, unknown>;
    }>;
    /** Disable a user account */
    disableUserAccount(userId: string): Promise<{
        success: boolean;
        previousStatus: string;
    }>;
    /** Restore network segment */
    restoreNetworkSegment(segmentId: string, previousRules: unknown[]): Promise<boolean>;
    /** Restore container network */
    restoreContainer(containerId: string, previousNetwork: string): Promise<boolean>;
    /** Restore server access */
    restoreServer(serverId: string, previousConfig: Record<string, unknown>): Promise<boolean>;
    /** Re-enable user account */
    enableUserAccount(userId: string): Promise<boolean>;
}
export declare function setIsolationService(service: IsolationService): void;
export declare function getIsolationService(): IsolationService;
export declare const isolateSystemAction: ActionDefinition;
export default isolateSystemAction;
//# sourceMappingURL=isolate-system.d.ts.map