import type { CloudConfig, EnvironmentType } from '@ts-cloud/core';
export interface SiteStackMigrationPlan {
    oldStackName: string;
    newStackName: string;
    oldBucket: string;
    newBucket: string;
    distributionId: string;
    oacId: string;
    certificateArn: string;
    templatePath: string;
    importPath: string;
}
export interface SiteStackMigrationOptions {
    config: CloudConfig;
    environment: EnvironmentType;
    siteKey: string;
    oldStackName: string;
    oldBucket: string;
    distributionId: string;
    oacId: string;
    outputDir: string;
}
export declare function buildSiteStackMigrationPlan(options: SiteStackMigrationOptions & {
    certificateArn?: string;
}): SiteStackMigrationPlan;
export declare function resolveSiteCertificateArn(domain: string, region?: string): Promise<string>;
export declare function deployRetainPoliciesToStack(stackName: string, templatePath: string, region: string): Promise<void>;
export declare function deleteStackRetainResources(stackName: string, region: string): Promise<void>;
export declare function importSiteStack(plan: SiteStackMigrationPlan, region: string): Promise<void>;
export declare function syncSiteBucket(oldBucket: string, newBucket: string, region: string): Promise<void>;
export declare function uploadSiteAssets(plan: SiteStackMigrationPlan, sourceDir: string, region: string): Promise<void>;
