import * as Core from "../../core.js";
/**
 * Profile information.
 */
export type Account = {
    /**
     * Username of the user profile.
     */
    username?: string;
    /**
     * The role of the user.
     */
    type?: "normal" | "operator";
};
/**
 * Country Details
 */
export type CountryDetails = {
    /**
     * Currency ISO 4217 code
     */
    currency?: string;
    /**
     * Country ISO code
     */
    iso_code?: string;
    /**
     * Country EN name
     */
    en_name?: string;
    /**
     * Country native name
     */
    native_name?: string;
};
/**
 * TimeOffset Details
 */
export type TimeoffsetDetails = {
    /**
     * Postal code
     */
    post_code?: string;
    /**
     * UTC offset
     */
    offset?: number;
    /**
     * Daylight Saving Time
     */
    dst?: boolean;
};
/**
 * Details of the registered address.
 */
export type AddressWithDetails = {
    /**
     * Address line 1
     */
    address_line1?: string;
    /**
     * Address line 2
     */
    address_line2?: string;
    /**
     * City
     */
    city?: string;
    /**
     * Country ISO 3166-1 code
     */
    country?: string;
    /**
     * Country region id
     */
    region_id?: number;
    /**
     * Region name
     */
    region_name?: string;
    /**
     * Region code
     */
    region_code?: string;
    /**
     * Postal code
     */
    post_code?: string;
    /**
     * Landline number
     */
    landline?: string;
    /**
     * undefined
     */
    first_name?: string;
    /**
     * undefined
     */
    last_name?: string;
    /**
     * undefined
     */
    company?: string;
    country_details?: CountryDetails;
    timeoffset_details?: TimeoffsetDetails;
    /**
     * undefined
     */
    state_id?: string;
};
/**
 * Mobile app settings
 */
export type AppSettings = {
    /**
     * Checkout preference
     */
    checkout_preference?: string;
    /**
     * Include vat.
     */
    include_vat?: boolean;
    /**
     * Manual entry tutorial.
     */
    manual_entry_tutorial?: boolean;
    /**
     * Mobile payment tutorial.
     */
    mobile_payment_tutorial?: boolean;
    /**
     * Tax enabled.
     */
    tax_enabled?: boolean;
    /**
     * Mobile payment.
     */
    mobile_payment?: string;
    /**
     * Reader payment.
     */
    reader_payment?: string;
    /**
     * Cash payment.
     */
    cash_payment?: string;
    /**
     * Advanced mode.
     */
    advanced_mode?: string;
    /**
     * Expected max transaction amount.
     */
    expected_max_transaction_amount?: number;
    /**
     * Manual entry.
     */
    manual_entry?: string;
    /**
     * Terminal mode tutorial.
     */
    terminal_mode_tutorial?: boolean;
    /**
     * Tipping.
     */
    tipping?: string;
    /**
     * Tip rates.
     */
    tip_rates?: number[];
    /**
     * Barcode scanner.
     */
    barcode_scanner?: string;
    /**
     * Referral.
     */
    referral?: string;
};
export type BankAccount = {
    /**
     * Bank code
     */
    bank_code?: string;
    /**
     * Branch code
     */
    branch_code?: string;
    /**
     * SWIFT code
     */
    swift?: string;
    /**
     * Account number
     */
    account_number?: string;
    /**
     * IBAN
     */
    iban?: string;
    /**
     * Type of the account
     */
    account_type?: string;
    /**
     * Account category - business or personal
     */
    account_category?: string;
    account_holder_name?: string;
    /**
     * Status in the verification process
     */
    status?: string;
    /**
     * The primary bank account is the one used for payouts
     */
    primary?: boolean;
    /**
     * Creation date of the bank account
     */
    created_at?: string;
    /**
     * Bank name
     */
    bank_name?: string;
};
/**
 * Business owners information.
 */
export type BusinessOwners = {
    /**
     * BO's first name
     */
    first_name?: string;
    /**
     * BO's last name of the user
     */
    last_name?: string;
    /**
     * Date of birth
     */
    date_of_birth?: string;
    /**
     * Mobile phone number
     */
    mobile_phone?: string;
    /**
     * BO's Landline
     */
    landline?: string;
    /**
     * Ownership percentage
     */
    ownership?: number;
}[];
/**
 * Doing Business As information
 */
export type DoingBusinessAs = {
    /**
     * Doing business as name
     */
    business_name?: string;
    /**
     * Doing business as company registration number
     */
    company_registration_number?: string;
    /**
     * Doing business as VAT ID
     */
    vat_id?: string;
    /**
     * Doing business as website
     */
    website?: string;
    /**
     * Doing business as email
     */
    email?: string;
    address?: {
        /**
         * Address line 1
         */
        address_line1?: string;
        /**
         * Address line 2
         */
        address_line2?: string;
        /**
         * City
         */
        city?: string;
        /**
         * Country ISO 3166-1 code
         */
        country?: string;
        /**
         * Country region ID
         */
        region_id?: number;
        /**
         * Country region name
         */
        region_name?: string;
        /**
         * Postal code
         */
        post_code?: string;
    };
};
/**
 * Error message for forbidden requests.
 */
export type ErrorForbidden = {
    /**
     * Short description of the error.
     */
    error_message?: string;
    /**
     * Platform code for the error.
     */
    error_code?: string;
    /**
     * HTTP status code for the error.
     */
    status_code?: string;
};
/**
 * Id of the legal type of the merchant profile
 */
export type LegalType = {
    /**
     * Unique id
     */
    id?: number;
    /**
     * Legal type description
     */
    full_description?: string;
    /**
     * Legal type short description
     */
    description?: string;
    /**
     * Sole trader legal type if true
     */
    sole_trader?: boolean;
};
/**
 * Account's personal profile.
 */
export type PersonalProfile = {
    /**
     * First name of the user
     */
    first_name?: string;
    /**
     * Last name of the user
     */
    last_name?: string;
    /**
     * Date of birth
     */
    date_of_birth?: string;
    /**
     * Mobile phone number
     */
    mobile_phone?: string;
    address?: AddressWithDetails;
    complete?: boolean;
};
/**
 * Merchant settings &#40;like \"payout_type\", \"payout_period\"&#41;
 */
export type MerchantSettings = {
    /**
     * Whether to show tax in receipts &#40;saved per transaction&#41;
     */
    tax_enabled?: boolean;
    /**
     * Payout type
     */
    payout_type?: string;
    /**
     * Payout frequency
     */
    payout_period?: string;
    /**
     * Whether merchant can edit payouts on demand
     */
    payout_on_demand_available?: boolean;
    /**
     * Whether merchant will receive payouts on demand
     */
    payout_on_demand?: boolean;
    /**
     * Whether to show printers in mobile app
     */
    printers_enabled?: boolean;
    /**
     * Payout Instrument
     */
    payout_instrument?: string;
    /**
     * Whether merchant can make MOTO payments
     */
    moto_payment?: "UNAVAILABLE" | "ENFORCED" | "ON" | "OFF";
    /**
     * Stone merchant code
     */
    stone_merchant_code?: string;
    /**
     * Whether merchant will receive daily payout emails
     */
    daily_payout_email?: boolean;
    /**
     * Whether merchant will receive monthly payout emails
     */
    monthly_payout_email?: boolean;
    /**
     * Whether merchant has gross settlement enabled
     */
    gross_settlement?: boolean;
};
/**
 * Merchant VAT rates
 */
export type VatRates = {
    /**
     * Internal ID
     */
    id?: number;
    /**
     * Description
     */
    description?: string;
    /**
     * Rate
     */
    rate?: number;
    /**
     * Ordering
     */
    ordering?: number;
    /**
     * Country ISO code
     */
    country?: string;
};
/**
 * Account's merchant profile
 */
export type MerchantProfile = {
    /**
     * Unique identifying code of the merchant profile
     */
    merchant_code?: string;
    /**
     * Company name
     */
    company_name?: string;
    /**
     * Website
     */
    website?: string;
    legal_type?: LegalType;
    /**
     * Merchant category code
     */
    merchant_category_code?: string;
    /**
     * Mobile phone number
     */
    mobile_phone?: string;
    /**
     * Company registration number
     */
    company_registration_number?: string;
    /**
     * Vat ID
     */
    vat_id?: string;
    /**
     * Permanent certificate access code &#40;Portugal&#41;
     */
    permanent_certificate_access_code?: string;
    /**
     * Nature and purpose of the business
     */
    nature_and_purpose?: string;
    address?: AddressWithDetails;
    business_owners?: BusinessOwners;
    doing_business_as?: DoingBusinessAs;
    settings?: MerchantSettings;
    vat_rates?: VatRates;
    /**
     * Merchant locale &#40;for internal usage only&#41;
     */
    locale?: string;
    bank_accounts?: BankAccount[];
    /**
     * True if the merchant is extdev
     */
    extdev?: boolean;
    /**
     * True if the payout zone of this merchant is migrated
     */
    payout_zone_migrated?: boolean;
    /**
     * Merchant country code formatted according to [ISO3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) &#40;for internal usage only&#41;
     */
    country?: string;
};
/**
 * User permissions
 */
export type Permissions = {
    /**
     * Create MOTO payments
     */
    create_moto_payments?: boolean;
    /**
     * Can view full merchant transaction history
     */
    full_transaction_history_view?: boolean;
    /**
     * Refund transactions
     */
    refund_transactions?: boolean;
    /**
     * Create referral
     */
    create_referral?: boolean;
};
/**
 * Merchant Account
 *
 * Details of the merchant account.
 */
export type MerchantAccount = {
    account?: Account;
    personal_profile?: PersonalProfile;
    merchant_profile?: MerchantProfile;
    app_settings?: AppSettings;
    permissions?: Permissions;
    /**
     * Merchant comes from payleven BR migration
     */
    is_migrated_payleven_br?: boolean;
};
export type GetAccountQueryParams = {
    "include[]"?: ("settings" | "doing_business_as" | "bank_accounts" | "app_settings" | "country_details")[];
};
export type ListBankAccountsV11QueryParams = {
    primary?: boolean;
};
export type ListBankAccountsV11Response = BankAccount[];
export type ListBankAccountsQueryParams = {
    primary?: boolean;
};
export type ListBankAccountsResponse = BankAccount[];
export declare class Merchant extends Core.APIResource {
    /**
     * Retrieve a profile
     */
    get(query?: GetAccountQueryParams, params?: Core.FetchParams): Core.APIPromise<MerchantAccount>;
    /**
     * Retrieve a personal profile
     */
    getPersonalProfile(params?: Core.FetchParams): Core.APIPromise<PersonalProfile>;
    /**
     * Retrieve a merchant profile
     */
    getMerchantProfile(params?: Core.FetchParams): Core.APIPromise<MerchantProfile>;
    /**
     * Retrieve DBA
     */
    getDoingBusinessAs(params?: Core.FetchParams): Core.APIPromise<DoingBusinessAs>;
    /**
     * List bank accounts
     */
    listBankAccounts(merchantCode: string, query?: ListBankAccountsV11QueryParams, params?: Core.FetchParams): Core.APIPromise<BankAccount[]>;
    /**
     * List bank accounts
     */
    listBankAccountsDeprecated(query?: ListBankAccountsQueryParams, params?: Core.FetchParams): Core.APIPromise<BankAccount[]>;
    /**
     * Get settings
     */
    getSettings(params?: Core.FetchParams): Core.APIPromise<MerchantSettings>;
}
export declare namespace Merchant {
    export type { Account, AddressWithDetails, AppSettings, BankAccount, BusinessOwners, CountryDetails, DoingBusinessAs, ErrorForbidden, GetAccountQueryParams, LegalType, ListBankAccountsQueryParams, ListBankAccountsV11QueryParams, MerchantAccount, MerchantProfile, MerchantSettings, Permissions, PersonalProfile, TimeoffsetDetails, VatRates, };
}
//# sourceMappingURL=index.d.ts.map