import { BankCodeGEO, BankCodeUZ, ExternalIdentifierType } from "../enums";
import { StandingOrder } from "../models";
import { Currency } from "./Money";
export declare class InitTransferRequest {
    SenderBankCode: BankCodeUZ | BankCodeGEO;
    ReceiverBankCode: BankCodeUZ | BankCodeGEO;
    UserId: string;
    SourceCardId: string;
    DestinationCardId: string;
    ExternalIdentifier: string;
    ExternalIdentifierType: ExternalIdentifierType;
    Purpose: string;
    MediaId: string;
    MediaUrl: string;
    LongMediaUrl: string;
    SaveAsFavorite: boolean;
    FavoriteName: string;
    FavoriteImage: Blob;
    OtpToken: string;
    LocalAuthenticationId: string;
    "Amount.Amount": number;
    "Amount.CurrencyCode": Currency;
    constructor(data: {
        SenderBankCode?: BankCodeUZ | BankCodeGEO;
        ReceiverBankCode?: BankCodeUZ | BankCodeGEO;
        UserId?: string;
        SourceCardId?: string;
        DestinationCardId?: string;
        ExternalIdentifier?: string;
        ExternalIdentifierType?: ExternalIdentifierType;
        Purpose?: string;
        MediaId?: string;
        MediaUrl?: string;
        LongMediaUrl?: string;
        SaveAsFavorite?: boolean;
        FavoriteName?: string;
        FavoriteImage?: Blob;
        OtpToken?: string;
        LocalAuthenticationId?: string;
        "Amount.Amount"?: number;
        "Amount.CurrencyCode"?: Currency;
    });
}
export interface InitTransferResponse {
    data: {};
}
export declare class FinalizeTransferRequest {
    transferId: string;
    cardId: string;
    ipAddress: string;
    constructor(data: {
        transferId: string;
        cardId: string;
        ipAddress?: string;
    });
}
export interface Transfer {
    isCompleted: boolean;
    amount: number;
    externalIdentifier: string;
    destinationExternalIdentifierType: ExternalIdentifierType;
    senderFirstName: string;
    senderLastName: string;
    senderPhoneNumber: string;
    senderPersonalNumber: string;
    senderProfileImageUrl: string;
    deviceToken: string;
    platform: string;
    receiverPhoneNumber: string;
    receiverCardMask: string;
    purpose: string;
    mediaUrl: string;
    longMediaUrl: string;
}
export interface TransferFavorite {
    id: number;
    identifier: string;
    identifierName: string;
    identifierType: ExternalIdentifierType;
    extra: string;
    name: string;
    imageUrl: string;
    order: number;
    standingOrder: StandingOrder;
    isOwnIdentifier: boolean;
    cursor: string;
}
export interface InitiateTransferResponse {
    receiveUrl: string;
    mediaUrl: string;
    transferFavoriteId: number;
    isOwnIdentifier: boolean;
    transferFavorite: TransferFavorite;
}
export declare class TransferDetailsRequest {
    TransferId: string;
    constructor(TransferId: string);
}
