import { APIResource } from "../../core/resource.js";
import { APIPromise } from "../../core/api-promise.js";
import { RequestOptions } from "../../internal/request-options.js";
export declare class BaseEntitlements extends APIResource {
    static readonly _key: readonly ['tenants', 'entitlements'];
    /**
     * Retrieves the innate and custom entitlement allocations available to this
     * tenant.
     */
    get(tenantID: string, options?: RequestOptions): APIPromise<TenantEntitlements>;
}
export declare class Entitlements extends BaseEntitlements {
}
export interface TenantEntitlements {
    allow_add_subdomain: TenantEntitlements.AllowAddSubdomain;
    allow_auto_accept_invites: TenantEntitlements.AllowAutoAcceptInvites;
    cname_setup_allowed: TenantEntitlements.CNAMESetupAllowed;
    custom_entitlements: Array<TenantEntitlements.CustomEntitlement> | null;
    mhs_certificate_count: TenantEntitlements.MhsCertificateCount;
    partial_setup_allowed: TenantEntitlements.PartialSetupAllowed;
}
export declare namespace TenantEntitlements {
    interface AllowAddSubdomain {
        type: 'bool';
        value: boolean;
    }
    interface AllowAutoAcceptInvites {
        type: 'bool';
        value: boolean;
    }
    interface CNAMESetupAllowed {
        type: 'bool';
        value: boolean;
    }
    interface CustomEntitlement {
        allocation: CustomEntitlement.OrganizationsAPIMaxCountAllocation | CustomEntitlement.OrganizationsAPIBoolAllocation | CustomEntitlement.OrganizationsAPINullAllocation;
        feature: CustomEntitlement.Feature;
    }
    namespace CustomEntitlement {
        interface OrganizationsAPIMaxCountAllocation {
            type: 'max_count';
            value: number;
        }
        interface OrganizationsAPIBoolAllocation {
            type: 'bool';
            value: boolean;
        }
        interface OrganizationsAPINullAllocation {
            type: '';
            value?: unknown;
        }
        interface Feature {
            key: string;
        }
    }
    interface MhsCertificateCount {
        type: 'max_count';
        value: number;
    }
    interface PartialSetupAllowed {
        type: 'bool';
        value: boolean;
    }
}
export declare namespace Entitlements {
    export { type TenantEntitlements as TenantEntitlements };
}
//# sourceMappingURL=entitlements.d.ts.map