import { BaseAccountImpl } from "./BaseAccountImpl";
import { BankAccountDetails } from "../../domain/data/banking/BankAccountDetails";
import { BankAccount } from "../BankAccount";
import { FinancialInstitutionImpl } from "./FinancialInstitutionImpl";
import { ResponseEnvelope } from "../../domain/data/ResponseEnvelope";
import { StatementResponse } from "../../domain/data/common/StatementResponse";
import { TransactionWrappedRequestMessage } from "../../domain/data/TransactionWrappedRequestMessage";
import { RequestMessage } from "../../domain/data/RequestMessage";
import { RequestMessageSet } from "../../domain/data/RequestMessageSet";
import { StatementRange } from "../../domain/data/common/StatementRange";
import { StatementRequest } from "../../domain/data/common/StatementRequest";
export declare class BankingAccountImpl extends BaseAccountImpl<BankAccountDetails> implements BankAccount {
    constructor(details: BankAccountDetails, username: string, password: string, institution: FinancialInstitutionImpl);
    protected unwrapStatementResponse(response: ResponseEnvelope): StatementResponse;
    protected createRequestMessageSet(transaction: TransactionWrappedRequestMessage<RequestMessage>): RequestMessageSet;
    protected createTransaction(): TransactionWrappedRequestMessage<RequestMessage>;
    protected createStatementRequest(details: BankAccountDetails, range: StatementRange): StatementRequest;
}
