import type { AddressCreate } from './AddressCreate';
/**
 *
 * @export
 * @interface AbstractSubscriberUpdate
 */
export interface AbstractSubscriberUpdate {
    /**
     * The merchant's reference used to identify the subscriber.
     * @type {string}
     * @memberof AbstractSubscriberUpdate
     */
    reference?: string;
    /**
     * Allow the subscriber to use these payment methods even if subscription products do not accept them.
     * @type {Array<number>}
     * @memberof AbstractSubscriberUpdate
     */
    additionalAllowedPaymentMethodConfigurations?: Array<number>;
    /**
     * Allow to store additional information about the object.
     * @type {{ [key: string]: string; }}
     * @memberof AbstractSubscriberUpdate
     */
    metaData?: {
        [key: string]: string;
    };
    /**
     * The email address that is used to communicate with the subscriber. There can be only one subscriber per space with the same email address.
     * @type {string}
     * @memberof AbstractSubscriberUpdate
     */
    emailAddress?: string;
    /**
     * Prevent the subscriber from using these payment methods even if subscription products do accept them.
     * @type {Array<number>}
     * @memberof AbstractSubscriberUpdate
     */
    disallowedPaymentMethodConfigurations?: Array<number>;
    /**
     * The description used to identify the subscriber.
     * @type {string}
     * @memberof AbstractSubscriberUpdate
     */
    description?: string;
    /**
     *
     * @type {AddressCreate}
     * @memberof AbstractSubscriberUpdate
     */
    shippingAddress?: AddressCreate;
    /**
     * The language that is used when communicating with the subscriber via emails and documents.
     * @type {string}
     * @memberof AbstractSubscriberUpdate
     */
    language?: string;
    /**
     *
     * @type {AddressCreate}
     * @memberof AbstractSubscriberUpdate
     */
    billingAddress?: AddressCreate;
}
/**
 * Check if a given object implements the AbstractSubscriberUpdate interface.
 */
export declare function instanceOfAbstractSubscriberUpdate(value: object): value is AbstractSubscriberUpdate;
export declare function AbstractSubscriberUpdateFromJSON(json: any): AbstractSubscriberUpdate;
export declare function AbstractSubscriberUpdateFromJSONTyped(json: any, ignoreDiscriminator: boolean): AbstractSubscriberUpdate;
export declare function AbstractSubscriberUpdateToJSON(json: any): AbstractSubscriberUpdate;
export declare function AbstractSubscriberUpdateToJSONTyped(value?: AbstractSubscriberUpdate | null, ignoreDiscriminator?: boolean): any;
