import type { PaymentTerminalConfigurationVersionState } from './PaymentTerminalConfigurationVersionState';
import type { PaymentTerminalConfiguration } from './PaymentTerminalConfiguration';
/**
 *
 * @export
 * @interface PaymentTerminalConfigurationVersion
 */
export interface PaymentTerminalConfigurationVersion {
    /**
     * The start time of the terminal's maintenance window.
     * @type {string}
     * @memberof PaymentTerminalConfigurationVersion
     */
    readonly maintenanceWindowStart?: string;
    /**
     *
     * @type {PaymentTerminalConfiguration}
     * @memberof PaymentTerminalConfigurationVersion
     */
    _configuration?: PaymentTerminalConfiguration;
    /**
     * 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 PaymentTerminalConfigurationVersion
     */
    readonly plannedPurgeDate?: Date;
    /**
     * The time zone of the payment terminal used to determine the maintenance window.
     * @type {string}
     * @memberof PaymentTerminalConfigurationVersion
     */
    readonly timeZone?: string;
    /**
     * Whether payment terminals are immediately updated to this configuration version. If not, it will be applied during the maintenance window.
     * @type {boolean}
     * @memberof PaymentTerminalConfigurationVersion
     */
    readonly versionAppliedImmediately?: boolean;
    /**
     * The date and time when the object was created.
     * @type {Date}
     * @memberof PaymentTerminalConfigurationVersion
     */
    readonly createdOn?: Date;
    /**
     * The version is used for optimistic locking and incremented whenever the object is updated.
     * @type {number}
     * @memberof PaymentTerminalConfigurationVersion
     */
    readonly version?: number;
    /**
     * The ID of the space this object belongs to.
     * @type {number}
     * @memberof PaymentTerminalConfigurationVersion
     */
    readonly linkedSpaceId?: number;
    /**
     * The payment connector configurations that are available on the payment terminal.
     * @type {Array<number>}
     * @memberof PaymentTerminalConfigurationVersion
     */
    readonly connectorConfigurations?: Array<number>;
    /**
     * The ID of the user the payment terminal configuration version was created by.
     * @type {number}
     * @memberof PaymentTerminalConfigurationVersion
     */
    readonly createdBy?: number;
    /**
     * The default currency that is used if none is set on the payment terminal itself. If it is empty, the currency is derived from the location of the terminal.
     * @type {string}
     * @memberof PaymentTerminalConfigurationVersion
     */
    readonly defaultCurrency?: string;
    /**
     * The permitted duration of the terminal's maintenance window.
     * @type {string}
     * @memberof PaymentTerminalConfigurationVersion
     */
    readonly maintenanceWindowDuration?: string;
    /**
     * A unique identifier for the object.
     * @type {number}
     * @memberof PaymentTerminalConfigurationVersion
     */
    readonly id?: number;
    /**
     *
     * @type {PaymentTerminalConfigurationVersionState}
     * @memberof PaymentTerminalConfigurationVersion
     */
    state?: PaymentTerminalConfigurationVersionState;
}
/**
 * Check if a given object implements the PaymentTerminalConfigurationVersion interface.
 */
export declare function instanceOfPaymentTerminalConfigurationVersion(value: object): value is PaymentTerminalConfigurationVersion;
export declare function PaymentTerminalConfigurationVersionFromJSON(json: any): PaymentTerminalConfigurationVersion;
export declare function PaymentTerminalConfigurationVersionFromJSONTyped(json: any, ignoreDiscriminator: boolean): PaymentTerminalConfigurationVersion;
export declare function PaymentTerminalConfigurationVersionToJSON(json: any): PaymentTerminalConfigurationVersion;
export declare function PaymentTerminalConfigurationVersionToJSONTyped(value?: Omit<PaymentTerminalConfigurationVersion, 'maintenanceWindowStart' | 'plannedPurgeDate' | 'timeZone' | 'versionAppliedImmediately' | 'createdOn' | 'version' | 'linkedSpaceId' | 'connectorConfigurations' | 'createdBy' | 'defaultCurrency' | 'maintenanceWindowDuration' | 'id'> | null, ignoreDiscriminator?: boolean): any;
