import { APIResource } from "../../core/resource.mjs";
import * as AccountTypesAPI from "./account-types.mjs";
import { AccountTypeListResponse, AccountTypeListResponsesSinglePage, AccountTypes, BaseAccountTypes } from "./account-types.mjs";
import * as AccountsAPI from "./accounts.mjs";
import { Accounts, BaseAccounts, TenantAccount, TenantAccountsSinglePage } from "./accounts.mjs";
import * as EntitlementsAPI from "./entitlements.mjs";
import { BaseEntitlements, Entitlements, TenantEntitlements } from "./entitlements.mjs";
import * as MembershipsAPI from "./memberships.mjs";
import { BaseMemberships, Memberships, TenantMembership, TenantMembershipsSinglePage } from "./memberships.mjs";
import { APIPromise } from "../../core/api-promise.mjs";
import { RequestOptions } from "../../internal/request-options.mjs";
export declare class BaseTenants extends APIResource {
    static readonly _key: readonly ['tenants'];
    /**
     * Retrieves a tenant's identity, status, metadata, contacts, and organizational
     * units.
     */
    get(tenantID: string, options?: RequestOptions): APIPromise<Tenant>;
}
export declare class Tenants extends BaseTenants {
    accountTypes: AccountTypesAPI.AccountTypes;
    accounts: AccountsAPI.Accounts;
    entitlements: EntitlementsAPI.Entitlements;
    memberships: MembershipsAPI.Memberships;
}
export interface Tenant {
    cdate: string;
    edate: string;
    tenant_contacts: Tenant.TenantContacts;
    tenant_labels: Array<string>;
    tenant_metadata: Tenant.TenantMetadata;
    tenant_name: string;
    tenant_network: unknown;
    tenant_status: string;
    tenant_tag: string;
    tenant_type: string;
    tenant_units: Array<Tenant.TenantUnit>;
    customer_id?: string;
}
export declare namespace Tenant {
    interface TenantContacts {
        email?: string;
        website?: string;
    }
    interface TenantMetadata {
        dns?: TenantMetadata.DNS;
    }
    namespace TenantMetadata {
        interface DNS {
            ns_pool: DNS.NSPool;
        }
        namespace DNS {
            interface NSPool {
                primary?: string;
                secondary?: string;
            }
        }
    }
    interface TenantUnit {
        unit_memberships: Array<unknown>;
        unit_metadata: unknown;
        unit_name: string;
        unit_status: string;
        unit_tag: string;
    }
}
export declare namespace Tenants {
    export { type Tenant as Tenant };
    export { AccountTypes as AccountTypes, BaseAccountTypes as BaseAccountTypes, type AccountTypeListResponse as AccountTypeListResponse, type AccountTypeListResponsesSinglePage as AccountTypeListResponsesSinglePage, };
    export { Accounts as Accounts, BaseAccounts as BaseAccounts, type TenantAccount as TenantAccount, type TenantAccountsSinglePage as TenantAccountsSinglePage, };
    export { Entitlements as Entitlements, BaseEntitlements as BaseEntitlements, type TenantEntitlements as TenantEntitlements, };
    export { Memberships as Memberships, BaseMemberships as BaseMemberships, type TenantMembership as TenantMembership, type TenantMembershipsSinglePage as TenantMembershipsSinglePage, };
}
//# sourceMappingURL=tenants.d.mts.map