#!/usr/bin/env node interface DriftDetectionOptions { region: string; stackNames?: string[]; timeout?: number; failOnDrift?: boolean; } interface DriftResult { stackName: string; driftStatus: 'IN_SYNC' | 'DRIFTED' | 'UNKNOWN' | 'NOT_CHECKED'; driftedResources?: DriftedResource[]; error?: string; knownErrorsHandled?: KnownErrorResult[]; } interface KnownErrorResult { readonly resourceId: string; readonly errorType: string; readonly originalError: any; readonly handled: boolean; readonly message?: string; } interface DriftedResource { readonly logicalResourceId: string; readonly resourceType: string; readonly stackResourceDriftStatus: string; readonly propertyDifferences?: PropertyDifference[]; } interface PropertyDifference { readonly propertyPath: string; readonly expectedValue: string; readonly actualValue: string; readonly differenceType: string; } declare class DriftDetector { private readonly options; private readonly results; constructor(options: DriftDetectionOptions); run(): Promise; private getStacksToCheck; private checkStackDrift; private startDriftDetection; private waitForDriftDetection; private getDriftedResources; /** * Handle known drift errors for specific resources * This method can be extended later to implement custom logic for known issues */ private handleKnownDriftErrors; private printDriftDetails; private printSummary; private saveResults; private shouldFail; } export { DriftDetector, DriftDetectionOptions, DriftResult, KnownErrorResult, DriftedResource };