/**
 * Account ID Resolution for Lambda Kata CDK Integration
 *
 * This module provides functionality to determine the target AWS account ID
 * during CDK synthesis/deploy time. The account ID is required for validating
 * AWS Marketplace entitlements.
 *
 * Resolution strategies (in order of precedence):
 * 1. CDK context value (explicit configuration)
 * 2. Stack account (if not a token/unresolved)
 * 3. STS GetCallerIdentity (fallback for runtime resolution)
 *
 * @module account-resolver
 */
import { Construct } from 'constructs';
import { STSClient } from '@aws-sdk/client-sts';
/**
 * Error thrown when account ID cannot be resolved through any strategy.
 */
export declare class AccountResolutionError extends Error {
    constructor(message: string);
}
/**
 * Result of account ID resolution, including the source of the resolution.
 */
export interface AccountResolutionResult {
    /**
     * The resolved AWS account ID (12-digit string)
     */
    accountId: string;
    /**
     * The source/strategy that successfully resolved the account ID
     */
    source: 'context' | 'stack' | 'sts';
}
/**
 * Options for account ID resolution.
 */
export interface AccountResolverOptions {
    /**
     * Custom STS client for testing or custom configuration.
     * If not provided, a default client will be created.
     */
    stsClient?: STSClient;
    /**
     * Whether to skip the STS fallback (useful for testing).
     * Default: false
     */
    skipStsFallback?: boolean;
}
/**
 * Resolves the target AWS account ID for entitlement checking.
 *
 * This function attempts to determine the AWS account ID using multiple
 * strategies in order of precedence:
 *
 * 1. **CDK Context**: Checks for `aws:cdk:account` context value
 * 2. **Stack Account**: Uses the Stack's account if it's not a token
 * 3. **STS Fallback**: Calls STS GetCallerIdentity as a last resort
 *
 * @param scope - The CDK construct scope to resolve the account for
 * @param options - Optional configuration for resolution behavior
 * @returns Promise resolving to the AWS account ID (12-digit string)
 * @throws AccountResolutionError if account cannot be resolved through any strategy
 *
 * @example
 * ```typescript
 * const accountId = await resolveAccountId(this);
 * console.log(`Deploying to account: ${accountId}`);
 * ```
 *
 * @remarks
 * Validates: Requirements 3.1
 * - WHEN `cdk deploy` is executed, THE kata_Wrapper SHALL determine the target AWS account ID
 */
export declare function resolveAccountId(scope: Construct, options?: AccountResolverOptions): Promise<string>;
/**
 * Resolves the target AWS account ID with information about the resolution source.
 *
 * This is an extended version of `resolveAccountId` that also returns
 * information about which strategy was used to resolve the account ID.
 *
 * @param scope - The CDK construct scope to resolve the account for
 * @param options - Optional configuration for resolution behavior
 * @returns Promise resolving to the account ID and resolution source
 * @throws AccountResolutionError if account cannot be resolved through any strategy
 *
 * @example
 * ```typescript
 * const { accountId, source } = await resolveAccountIdWithSource(this);
 * console.log(`Account ${accountId} resolved via ${source}`);
 * ```
 */
export declare function resolveAccountIdWithSource(scope: Construct, options?: AccountResolverOptions): Promise<AccountResolutionResult>;
/**
 * Validates that a string is a valid AWS account ID format.
 *
 * AWS account IDs are exactly 12 digits.
 *
 * @param accountId - The string to validate
 * @returns true if the string is a valid 12-digit account ID
 */
export declare function isValidAccountIdFormat(accountId: string): boolean;
