import { Logger } from '../types/cli.types';
/**
 * Custom error class for CloudFront invalidation operations
 */
export declare class CloudFrontInvalidationError extends Error {
    readonly distributionId: string;
    readonly invalidationId?: string | undefined;
    readonly hint?: string | undefined;
    constructor(message: string, distributionId: string, invalidationId?: string | undefined, hint?: string | undefined);
}
/**
 * Service for managing CloudFront cache invalidations
 */
export declare class CloudFrontInvalidationService {
    private readonly region;
    private readonly logger;
    private readonly client;
    constructor(region: string, logger: Logger);
    /**
     * Creates a CloudFront invalidation for the specified paths
     * @param distributionId - CloudFront distribution ID
     * @param paths - Array of paths to invalidate (e.g., ['/*'])
     * @returns Invalidation ID
     */
    createInvalidation(distributionId: string, paths: string[]): Promise<string>;
    /**
     * Gets the current status of an invalidation
     * @param distributionId - CloudFront distribution ID
     * @param invalidationId - Invalidation ID
     * @returns Invalidation status (InProgress, Completed)
     */
    getInvalidationStatus(distributionId: string, invalidationId: string): Promise<string>;
    /**
     * Waits for invalidation to reach InProgress or Completed status
     * @param distributionId - CloudFront distribution ID
     * @param invalidationId - Invalidation ID from createInvalidation
     * @param maxWaitTime - Maximum time to wait in milliseconds (default: 60000)
     * @returns Final invalidation status
     */
    waitForInvalidation(distributionId: string, invalidationId: string, maxWaitTime?: number): Promise<string>;
    /**
     * Sleep utility for polling
     */
    private sleep;
}
