export interface SupportCase {
    caseId?: string;
    displayId?: string;
    subject?: string;
    status?: string;
    serviceCode?: string;
    categoryCode?: string;
    severityCode?: string;
    submittedBy?: string;
    timeCreated?: string;
    recentCommunications?: {
        communications?: Array<{
            body?: string;
            submittedBy?: string;
            timeCreated?: string;
        }>;
    };
}
export interface CreateCaseParams {
    subject: string;
    communicationBody: string;
    serviceCode: string;
    categoryCode: string;
    severityCode?: 'low' | 'normal' | 'high' | 'urgent' | 'critical';
    ccEmailAddresses?: string[];
    language?: string;
    issueType?: 'customer-service' | 'technical';
    attachmentSetId?: string;
}
export interface SupportService {
    code: string;
    name: string;
    categories?: Array<{
        code: string;
        name: string;
    }>;
}
/**
 * AWS Support client for creating and managing support cases
 */
export declare class SupportClient {
    private client;
    private region;
    constructor(region?: string);
    /**
     * Create a new support case
     */
    createCase(params: CreateCaseParams): Promise<{
        caseId?: string;
    }>;
    /**
     * Get details of a support case
     */
    describeCase(caseId: string): Promise<SupportCase | null>;
    /**
     * List all support cases
     */
    listCases(options?: {
        includeResolved?: boolean;
        maxResults?: number;
        nextToken?: string;
    }): Promise<{
        cases: SupportCase[];
        nextToken?: string;
    }>;
    /**
     * Add a communication to an existing case
     */
    addCommunication(caseId: string, message: string, ccEmailAddresses?: string[]): Promise<boolean>;
    /**
     * Resolve a support case
     */
    resolveCase(caseId: string): Promise<{
        initialCaseStatus?: string;
        finalCaseStatus?: string;
    }>;
    /**
     * Get available services and categories for support cases
     */
    describeServices(serviceCodeList?: string[]): Promise<SupportService[]>;
    /**
     * Get available severity levels
     */
    describeSeverityLevels(): Promise<Array<{
        code: string;
        name: string;
    }>>;
}
export interface SmsSandboxExitParams {
    companyName: string;
    useCase: string;
    expectedMonthlyVolume: number;
    websiteUrl?: string;
}
export interface SmsSpendLimitIncreaseParams {
    companyName: string;
    currentLimit: number;
    requestedLimit: number;
    useCase: string;
}
export interface SesSandboxExitParams {
    companyName: string;
    websiteUrl: string;
    useCase: string;
    expectedDailyVolume: number;
}
export interface ConnectPhoneNumberIncreaseParams {
    companyName: string;
    instanceId: string;
    currentLimit: number;
    requestedLimit: number;
    useCase: string;
}
/**
 * Pre-built support case templates for common requests
 */
export declare const SupportTemplates: {
    /**
     * Request to exit SMS sandbox
     */
    smsSandboxExit: (params: SmsSandboxExitParams) => CreateCaseParams;
    /**
     * Request to increase SMS spending limit
     */
    smsSpendLimitIncrease: (params: SmsSpendLimitIncreaseParams) => CreateCaseParams;
    /**
     * Request SES production access (exit sandbox)
     */
    sesSandboxExit: (params: SesSandboxExitParams) => CreateCaseParams;
    /**
     * Request Connect phone number limit increase
     */
    connectPhoneNumberIncrease: (params: ConnectPhoneNumberIncreaseParams) => CreateCaseParams;
};
export default SupportClient;
