import { ValidatorFn } from '@angular/forms';
export interface TenantLimit {
    id: string;
    validators: ValidatorFn[];
    defaultValue: number | string | boolean | null;
    type: 'text' | 'checkbox' | 'number';
    label: string;
    labelArgs?: object;
    placeholder?: string;
    placeholderArgs?: object;
}
/**
 * Define all hardTyped custom properties, and their configuration in one place.
 *
 * This exported const utilizes typescript inferring,
 * while still benefiting from hard typing, thanks to "satisfies" keyword
 */
declare const tenantLimitsCustomPropertiesDefinition: {
    limitDevicesNumber: {
        id: string;
        validators: ValidatorFn[];
        defaultValue: any;
        type: "number";
        label: "Limit number of devices";
        placeholder: "e.g. {{ example }}";
        placeholderArgs: {
            example: number;
        };
    };
    limitHttpRequests: {
        id: string;
        validators: ValidatorFn[];
        defaultValue: any;
        type: "number";
        label: "Limit HTTP requests";
        placeholder: "e.g. {{ example }}";
        placeholderArgs: {
            example: number;
        };
    };
    limitHttpQueue: {
        id: string;
        validators: ValidatorFn[];
        defaultValue: any;
        type: "number";
        label: "Limit HTTP queue";
        placeholder: "e.g. {{ example }}";
        placeholderArgs: {
            example: number;
        };
    };
    limitStreamRequests: {
        id: string;
        validators: ValidatorFn[];
        defaultValue: any;
        type: "number";
        label: "Limit stream requests";
        placeholder: "e.g. {{ example }}";
        placeholderArgs: {
            example: number;
        };
    };
    limitStreamQueue: {
        id: string;
        validators: ValidatorFn[];
        defaultValue: any;
        type: "number";
        label: "Limit stream queue";
        placeholder: "e.g. {{ example }}";
        placeholderArgs: {
            example: number;
        };
    };
    cepServerQueueLimit: {
        id: string;
        validators: ValidatorFn[];
        defaultValue: any;
        type: "number";
        label: "Limit CEP server queue";
        placeholder: "e.g. {{ example }}";
        placeholderArgs: {
            example: number;
        };
    };
    dataBrokerQueueLimit: {
        id: string;
        validators: ValidatorFn[];
        defaultValue: any;
        type: "number";
        label: "Limit data broker queue";
        placeholder: "e.g. {{ example }}";
        placeholderArgs: {
            example: number;
        };
    };
    deviceStorageLimitMiB: {
        id: string;
        validators: ValidatorFn[];
        defaultValue: number;
        type: "number";
        label: "Storage limit per device (MiB)";
        placeholder: "e.g. {{ example }}";
        placeholderArgs: {
            example: number;
        };
    };
};
export type TenantLimitsCustomPropertiesKeys = keyof typeof tenantLimitsCustomPropertiesDefinition;
export declare const tenantLimitsCustomProperties: {
    [K in TenantLimitsCustomPropertiesKeys]: TenantLimit;
};
export {};
//# sourceMappingURL=tenant-limits-definitions.d.ts.map