import type { OneClickPaymentMode } from './OneClickPaymentMode';
import type { CreationEntityState } from './CreationEntityState';
import type { PaymentMethod } from './PaymentMethod';
import type { DataCollectionType } from './DataCollectionType';
/**
 *
 * @export
 * @interface PaymentMethodConfiguration
 */
export interface PaymentMethodConfiguration {
    /**
     *
     * @type {DataCollectionType}
     * @memberof PaymentMethodConfiguration
     */
    dataCollectionType?: DataCollectionType;
    /**
     * The date and time when the object is planned to be permanently removed. If the value is empty, the object will not be removed.
     * @type {Date}
     * @memberof PaymentMethodConfiguration
     */
    readonly plannedPurgeDate?: Date;
    /**
     * A customer-facing custom description for the payment method.
     * @type {{ [key: string]: string; }}
     * @memberof PaymentMethodConfiguration
     */
    readonly description?: {
        [key: string]: string;
    };
    /**
     * The URL to the image of the payment method displayed to the customer. If a custom image is defined, it will be used; otherwise, the default image of the payment method will be shown.
     * @type {string}
     * @memberof PaymentMethodConfiguration
     */
    readonly resolvedImageUrl?: string;
    /**
     *
     * @type {OneClickPaymentMode}
     * @memberof PaymentMethodConfiguration
     */
    oneClickPaymentMode?: OneClickPaymentMode;
    /**
     * A customer-facing custom title for the payment method.
     * @type {{ [key: string]: string; }}
     * @memberof PaymentMethodConfiguration
     */
    readonly title?: {
        [key: string]: string;
    };
    /**
     * The version is used for optimistic locking and incremented whenever the object is updated.
     * @type {number}
     * @memberof PaymentMethodConfiguration
     */
    readonly version?: number;
    /**
     * The ID of the space this object belongs to.
     * @type {number}
     * @memberof PaymentMethodConfiguration
     */
    readonly linkedSpaceId?: number;
    /**
     * The ID of the space this object belongs to.
     * @type {number}
     * @memberof PaymentMethodConfiguration
     */
    readonly spaceId?: number;
    /**
     * The resource path to a custom image for the payment method, displayed to the customer for visual identification.
     * @type {string}
     * @memberof PaymentMethodConfiguration
     */
    readonly imageResourcePath?: string;
    /**
     * When listing payment methods, they can be sorted by this number.
     * @type {number}
     * @memberof PaymentMethodConfiguration
     */
    readonly sortOrder?: number;
    /**
     * The name used to identify the payment method configuration.
     * @type {string}
     * @memberof PaymentMethodConfiguration
     */
    readonly name?: string;
    /**
     * The description of the payment method displayed to the customer. If a custom description is defined, it will be used; otherwise, the default description of the payment method will be shown.
     * @type {{ [key: string]: string; }}
     * @memberof PaymentMethodConfiguration
     */
    readonly resolvedDescription?: {
        [key: string]: string;
    };
    /**
     * The title of the payment method displayed to the customer. If a custom title is defined, it will be used; otherwise, the default title of the payment method will be shown.
     * @type {{ [key: string]: string; }}
     * @memberof PaymentMethodConfiguration
     */
    readonly resolvedTitle?: {
        [key: string]: string;
    };
    /**
     *
     * @type {PaymentMethod}
     * @memberof PaymentMethodConfiguration
     */
    paymentMethod?: PaymentMethod;
    /**
     * A unique identifier for the object.
     * @type {number}
     * @memberof PaymentMethodConfiguration
     */
    readonly id?: number;
    /**
     *
     * @type {CreationEntityState}
     * @memberof PaymentMethodConfiguration
     */
    state?: CreationEntityState;
}
/**
 * Check if a given object implements the PaymentMethodConfiguration interface.
 */
export declare function instanceOfPaymentMethodConfiguration(value: object): value is PaymentMethodConfiguration;
export declare function PaymentMethodConfigurationFromJSON(json: any): PaymentMethodConfiguration;
export declare function PaymentMethodConfigurationFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaymentMethodConfiguration;
export declare function PaymentMethodConfigurationToJSON(json: any): PaymentMethodConfiguration;
export declare function PaymentMethodConfigurationToJSONTyped(value?: Omit<PaymentMethodConfiguration, 'plannedPurgeDate' | 'description' | 'resolvedImageUrl' | 'title' | 'version' | 'linkedSpaceId' | 'spaceId' | 'imageResourcePath' | 'sortOrder' | 'name' | 'resolvedDescription' | 'resolvedTitle' | 'id'> | null, ignoreDiscriminator?: boolean): any;
