import type { Account } from './Account';
import type { SpaceAddress } from './SpaceAddress';
import type { CreationEntityState } from './CreationEntityState';
import type { TenantDatabase } from './TenantDatabase';
/**
 *
 * @export
 * @interface Space
 */
export interface Space {
    /**
     * Whether this space and all its parent accounts are active or restricted active.
     * @type {boolean}
     * @memberof Space
     */
    readonly activeOrRestrictedActive?: boolean;
    /**
     * The date and time when the space was deleted.
     * @type {Date}
     * @memberof Space
     */
    readonly deletedOn?: Date;
    /**
     * 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 Space
     */
    readonly plannedPurgeDate?: Date;
    /**
     * Whether this space and all its parent accounts are active.
     * @type {boolean}
     * @memberof Space
     */
    readonly active?: boolean;
    /**
     * The time zone that is used to schedule and run background processes. This does not affect the formatting of dates in the user interface.
     * @type {string}
     * @memberof Space
     */
    readonly timeZone?: string;
    /**
     * The date and time when the space was created.
     * @type {Date}
     * @memberof Space
     */
    readonly createdOn?: Date;
    /**
     * The currency that is used to display aggregated amounts in the space.
     * @type {string}
     * @memberof Space
     */
    readonly primaryCurrency?: string;
    /**
     * The version is used for optimistic locking and incremented whenever the object is updated.
     * @type {number}
     * @memberof Space
     */
    readonly version?: number;
    /**
     * The ID of the user the space was deleted by.
     * @type {number}
     * @memberof Space
     */
    readonly deletedBy?: number;
    /**
     * The maximum number of API requests that are accepted within two minutes. This limit can only be changed with special privileges.
     * @type {number}
     * @memberof Space
     */
    readonly requestLimit?: number;
    /**
     *
     * @type {TenantDatabase}
     * @memberof Space
     */
    database?: TenantDatabase;
    /**
     *
     * @type {SpaceAddress}
     * @memberof Space
     */
    postalAddress?: SpaceAddress;
    /**
     * Whether this space and all its parent accounts are active or restricted active. There is least one parent account that is restricted active.
     * @type {boolean}
     * @memberof Space
     */
    readonly restrictedActive?: boolean;
    /**
     * The ID of the user the space was created by.
     * @type {number}
     * @memberof Space
     */
    readonly createdBy?: number;
    /**
     * The name used to identify the space.
     * @type {string}
     * @memberof Space
     */
    readonly name?: string;
    /**
     * The email address that will receive messages about technical issues and errors that occur in the space.
     * @type {Set<string>}
     * @memberof Space
     */
    readonly technicalContactAddresses?: Set<string>;
    /**
     * A unique identifier for the object.
     * @type {number}
     * @memberof Space
     */
    readonly id?: number;
    /**
     *
     * @type {CreationEntityState}
     * @memberof Space
     */
    state?: CreationEntityState;
    /**
     *
     * @type {Account}
     * @memberof Space
     */
    account?: Account;
}
/**
 * Check if a given object implements the Space interface.
 */
export declare function instanceOfSpace(value: object): value is Space;
export declare function SpaceFromJSON(json: any): Space;
export declare function SpaceFromJSONTyped(json: any, ignoreDiscriminator: boolean): Space;
export declare function SpaceToJSON(json: any): Space;
export declare function SpaceToJSONTyped(value?: Omit<Space, 'activeOrRestrictedActive' | 'deletedOn' | 'plannedPurgeDate' | 'active' | 'timeZone' | 'createdOn' | 'primaryCurrency' | 'version' | 'deletedBy' | 'requestLimit' | 'restrictedActive' | 'createdBy' | 'name' | 'technicalContactAddresses' | 'id'> | null, ignoreDiscriminator?: boolean): any;
