import { AwsCredentialIdentity } from '@aws-sdk/types';
import { AuthConfig } from '../config/config.js';
/**
 * Credentials with additional metadata, including the AWS account ID and partition.
 */
export interface AwsCredentialIdentityWithMetaData extends AwsCredentialIdentity {
    /**
     * The AWS partition (e.g., 'aws', 'aws-cn', 'aws-us-gov').
     */
    partition: string;
    /**
     * The AWS account ID associated with these credentials.
     */
    accountId: string;
}
/**
 * What time is it now?
 *
 * This exists to make unit tests of caching behavior easier.
 *
 * @returns the current timestamp in milliseconds since the Unix epoch
 */
export declare function now(): number;
/**
 * Get brand new credentials for the given account ID and auth configuration.
 *
 * DO NOT USE THIS DIRECTLY. Use `getCredentials` in `auth.ts` instead
 *
 * @param accountId the AWS account ID for which to get credentials
 * @param authConfig the authentication configuration to use for the account
 * @returns new credentials based on the provided account ID and auth configuration
 */
export declare function getNewCredentials(accountId: string, authConfig: AuthConfig | undefined): Promise<AwsCredentialIdentityWithMetaData>;
/**
 * This gets a new set of initial credentials for an auth configuration. These are the initial
 * credentials that are the default credentials are used to then assume a role if one is specified.
 * There are very few cases where this should be used directly, and in most cases you should use
 * getNewCredentials instead.
 *
 * @param authConfig the authentication configuration to use
 * @param logInfo any additional information to log while getting the credentials
 * @returns new credentials based on the provided auth configuration
 */
export declare function getNewInitialCredentials(authConfig: AuthConfig | undefined, logInfo?: Record<string, unknown>): Promise<AwsCredentialIdentityWithMetaData>;
//# sourceMappingURL=coreAuth.d.ts.map