import type { SupportingEntityCapability } from './supporting-entity-capability';
import type { VerificationStatus } from './verification-status';
export type CapabilityName = 'acceptExternalFunding' | 'acceptPspFunding' | 'acceptTransactionInRestrictedCountries' | 'acceptTransactionInRestrictedCountriesCommercial' | 'acceptTransactionInRestrictedCountriesConsumer' | 'acceptTransactionInRestrictedIndustries' | 'acceptTransactionInRestrictedIndustriesCommercial' | 'acceptTransactionInRestrictedIndustriesConsumer' | 'acquiring' | 'atmWithdrawal' | 'atmWithdrawalCommercial' | 'atmWithdrawalConsumer' | 'atmWithdrawalInRestrictedCountries' | 'atmWithdrawalInRestrictedCountriesCommercial' | 'atmWithdrawalInRestrictedCountriesConsumer' | 'authorisedPaymentInstrumentUser' | 'getGrantOffers' | 'issueBankAccount' | 'banking' | 'issueCard' | 'issueCardCommercial' | 'issueCardConsumer' | 'issueChargeCard' | 'issueChargeCardCommercial' | 'localAcceptance' | 'payout' | 'payoutToTransferInstrument' | 'processing' | 'receiveFromBalanceAccount' | 'receiveFromPlatformPayments' | 'receiveFromThirdParty' | 'receiveFromTransferInstrument' | 'receiveGrants' | 'receivePayments' | 'sendToBalanceAccount' | 'sendToThirdParty' | 'sendToTransferInstrument' | 'thirdPartyFunding' | 'useCard' | 'useCardCommercial' | 'useCardConsumer' | 'useChargeCard' | 'useChargeCardCommercial' | 'useCardInRestrictedCountries' | 'useCardInRestrictedCountriesCommercial' | 'useCardInRestrictedCountriesConsumer' | 'useCardInRestrictedIndustries' | 'useCardInRestrictedIndustriesCommercial' | 'useCardInRestrictedIndustriesConsumer' | 'withdrawFromAtm' | 'withdrawFromAtmCommercial' | 'withdrawFromAtmConsumer' | 'withdrawFromAtmInRestrictedCountries' | 'withdrawFromAtmInRestrictedCountriesCommercial' | 'withdrawFromAtmInRestrictedCountriesConsumer';
interface Amount {
    /** @description The type of currency. Must be EUR (or EUR equivalent) */
    currency?: string;
    /** @description Total value of amount. Must be >= 0 */
    value?: number;
}
export interface Capability {
    /** @description Indicates whether the capability is allowed. Adyen sets this to **true** if the verification is successful */
    allowed?: boolean;
    /**
     * @description The capability level that is allowed for the legal entity.
     *
     * Possible values: **notApplicable**, **low**, **medium**, **high**.
     * @enum {string}
     */
    allowedLevel?: 'high' | 'low' | 'medium' | 'notApplicable';
    /** @description Indicates whether the capability is requested. To check whether the Legal Entity is permitted to use the capability, */
    requested?: boolean;
    /**
     * @description The requested level of the capability. Some capabilities, such as those used in [card issuing](https://docs.adyen.com/issuing/add-capabilities#capability-levels), have different levels. Levels increase the capability, but also require additional checks and increased monitoring.
     *
     * Possible values: **notApplicable**, **low**, **medium**, **high**.
     * @enum {string}
     */
    requestedLevel?: 'high' | 'low' | 'medium' | 'notApplicable';
    /** @description The settings that are requested for the legal entity */
    requestedSettings?: {
        /** @description The maximum amount a card holder can spend per industry */
        amountPerIndustry?: Record<string, Amount>;
        /** @description The number of card holders who can use the card */
        authorizedCardUsers?: boolean;
        /** @description The funding source of the card, for example debit */
        fundingSource?: string[];
        /** @description The period when the rule conditions apply */
        interval?: string;
        /** @description The maximum amount a card holder can withdraw per day */
        maxAmount?: Amount;
    };
    /** @description Capability status for transfer instruments associated with legal entity */
    transferInstruments?: readonly SupportingEntityCapability[];
    /**
     * @description The status of the verification checks for the capability.
     *
     * Possible values:
     *
     * * **pending**: Adyen is running the verification.
     *
     * * **invalid**: The verification failed. Check if the `errors` array contains more information.
     *
     * * **valid**: The verification has been successfully completed.
     *
     * * **rejected**: Adyen has verified the information, but found reasons to not allow the capability.
     */
    verificationStatus?: VerificationStatus;
}
export {};
