export interface SmsSetupConfig {
    region?: string;
    accountName?: string;
    accountId?: string;
    inbox?: {
        enabled?: boolean;
        bucket?: string;
        prefix?: string;
        retentionDays?: number;
    };
    twoWay?: {
        enabled?: boolean;
        topicName?: string;
    };
    spending?: {
        monthlyLimit?: number;
        autoRequestIncrease?: boolean;
    };
    sandbox?: {
        autoRequestExit?: boolean;
        companyName?: string;
        useCase?: string;
        expectedMonthlyVolume?: number;
        websiteUrl?: string;
    };
    deliveryReceipts?: {
        enabled?: boolean;
        topicName?: string;
        s3Bucket?: string;
        s3Prefix?: string;
    };
    inboxLambda?: {
        enabled?: boolean;
        functionName?: string;
        codeS3Bucket?: string;
        codeS3Key?: string;
    };
}
export interface SmsSetupResult {
    success: boolean;
    inboxBucket?: string;
    inboxPrefix?: string;
    twoWayTopicArn?: string;
    deliveryReceiptTopicArn?: string;
    inboxLambdaArn?: string;
    spendingLimit?: number;
    sandboxStatus?: 'IN_SANDBOX' | 'OUT_OF_SANDBOX' | 'EXIT_REQUESTED';
    supportCaseId?: string;
    errors: string[];
    warnings: string[];
}
/**
 * Set up complete SMS infrastructure
 * Called automatically during `buddy deploy` when SMS is enabled
 */
export declare function setupSmsInfrastructure(config: SmsSetupConfig): Promise<SmsSetupResult>;
/**
 * Get complete SMS infrastructure status
 */
export declare function getSmsInfrastructureStatus(config: {
    region?: string;
    accountName?: string;
}): Promise<{
    sandboxStatus: 'IN_SANDBOX' | 'OUT_OF_SANDBOX' | 'UNKNOWN';
    spendingLimit: number;
    topics: Array<{
        name: string;
        arn: string;
    }>;
}>;
/**
 * Create SMS infrastructure for Stacks deploy
 * This is the main entry point called by the deploy command
 */
export declare function createSmsInfrastructure(smsConfig: {
    enabled: boolean;
    provider: 'sns';
    originationNumber?: string;
    defaultCountryCode: string;
    messageType: 'TRANSACTIONAL' | 'PROMOTIONAL';
    maxSpendPerMonth?: number;
    inbox?: {
        enabled: boolean;
        bucket: string;
        prefix?: string;
        retentionDays?: number;
    };
    twoWay?: {
        enabled: boolean;
        snsTopicArn?: string;
    };
    optOut: {
        enabled: boolean;
        keywords: string[];
    };
}): Promise<SmsSetupResult>;
declare const _default: {
    setupSmsInfrastructure: typeof setupSmsInfrastructure;
    getSmsInfrastructureStatus: typeof getSmsInfrastructureStatus;
    createSmsInfrastructure: typeof createSmsInfrastructure;
};
export default _default;
