import type { CreationEntityState } from './CreationEntityState';
import type { Feature } from './Feature';
/**
 *
 * @export
 * @interface Scope
 */
export interface Scope {
    /**
     * 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 Scope
     */
    readonly plannedPurgeDate?: Date;
    /**
     * Whether the scope supports SSL.
     * @type {boolean}
     * @memberof Scope
     */
    readonly sslActive?: boolean;
    /**
     * The version is used for optimistic locking and incremented whenever the object is updated.
     * @type {number}
     * @memberof Scope
     */
    readonly version?: number;
    /**
     * The name identifying the scope in e.g. URLs.
     * @type {string}
     * @memberof Scope
     */
    readonly machineName?: string;
    /**
     * The URL where the scope can be accessed.
     * @type {string}
     * @memberof Scope
     */
    readonly url?: string;
    /**
     * The list of features that are active in the scope.
     * @type {Set<Feature>}
     * @memberof Scope
     */
    readonly features?: Set<Feature>;
    /**
     * The themes that determine the look and feel of the scope's user interface. A fall-through strategy is applied when building the actual theme.
     * @type {Array<string>}
     * @memberof Scope
     */
    readonly themes?: Array<string>;
    /**
     * The port where the scope can be accessed.
     * @type {number}
     * @memberof Scope
     */
    readonly port?: number;
    /**
     * The preprod domain name that belongs to the scope.
     * @type {string}
     * @memberof Scope
     */
    readonly preprodDomainName?: string;
    /**
     * The domain name that belongs to the scope.
     * @type {string}
     * @memberof Scope
     */
    readonly domainName?: string;
    /**
     * The name used to identify the scope.
     * @type {string}
     * @memberof Scope
     */
    readonly name?: string;
    /**
     * A unique identifier for the object.
     * @type {number}
     * @memberof Scope
     */
    readonly id?: number;
    /**
     *
     * @type {CreationEntityState}
     * @memberof Scope
     */
    state?: CreationEntityState;
    /**
     * The sandbox domain name that belongs to the scope.
     * @type {string}
     * @memberof Scope
     */
    readonly sandboxDomainName?: string;
}
/**
 * Check if a given object implements the Scope interface.
 */
export declare function instanceOfScope(value: object): value is Scope;
export declare function ScopeFromJSON(json: any): Scope;
export declare function ScopeFromJSONTyped(json: any, ignoreDiscriminator: boolean): Scope;
export declare function ScopeToJSON(json: any): Scope;
export declare function ScopeToJSONTyped(value?: Omit<Scope, 'plannedPurgeDate' | 'sslActive' | 'version' | 'machineName' | 'url' | 'features' | 'themes' | 'port' | 'preprodDomainName' | 'domainName' | 'name' | 'id' | 'sandboxDomainName'> | null, ignoreDiscriminator?: boolean): any;
