import Credentials from '../credentials';
import CredentialsProvider from '../credentials_provider';
export type ExternalCredentialUpdateCallback = (accessKeyId: string, accessKeySecret: string, securityToken: string, expiration: number) => Promise<void> | void;
declare class ExternalCredentialsProviderBuilder {
    processCommand: string;
    timeout?: number;
    credentialUpdateCallback?: ExternalCredentialUpdateCallback;
    withProcessCommand(processCommand: string): this;
    withTimeout(timeout: number): this;
    withCredentialUpdateCallback(callback: ExternalCredentialUpdateCallback): this;
    build(): ExternalCredentialsProvider;
}
export default class ExternalCredentialsProvider implements CredentialsProvider {
    private readonly processCommand;
    private readonly timeout;
    private readonly credentialUpdateCallback?;
    private session?;
    private expirationTimestamp;
    static builder(): ExternalCredentialsProviderBuilder;
    constructor(builder: ExternalCredentialsProviderBuilder);
    getProviderName(): string;
    private needUpdateCredential;
    private getCredentialsInternal;
    getCredentials(): Promise<Credentials>;
}
export {};
