import * as Core from 'cloudflaredev/core';
import { APIResource } from 'cloudflaredev/resource';
import * as SitesAPI from 'cloudflaredev/resources/magic-transit/sites/sites';
import * as ACLsAPI from 'cloudflaredev/resources/magic-transit/sites/acls';
import * as LANsAPI from 'cloudflaredev/resources/magic-transit/sites/lans';
import * as WANsAPI from 'cloudflaredev/resources/magic-transit/sites/wans';
import { SinglePage } from 'cloudflaredev/pagination';
export declare class Sites extends APIResource {
    acls: ACLsAPI.ACLs;
    lans: LANsAPI.LANs;
    wans: WANsAPI.WANs;
    /**
     * Creates a new Site
     */
    create(params: SiteCreateParams, options?: Core.RequestOptions): Core.APIPromise<Site>;
    /**
     * Update a specific Site.
     */
    update(siteId: string, params: SiteUpdateParams, options?: Core.RequestOptions): Core.APIPromise<Site>;
    /**
     * Lists Sites associated with an account. Use connector_identifier query param to
     * return sites where connector_identifier matches either site.ConnectorID or
     * site.SecondaryConnectorID.
     */
    list(params: SiteListParams, options?: Core.RequestOptions): Core.PagePromise<SitesSinglePage, Site>;
    /**
     * Remove a specific Site.
     */
    delete(siteId: string, params: SiteDeleteParams, options?: Core.RequestOptions): Core.APIPromise<Site>;
    /**
     * Get a specific Site.
     */
    get(siteId: string, params: SiteGetParams, options?: Core.RequestOptions): Core.APIPromise<Site>;
}
export declare class SitesSinglePage extends SinglePage<Site> {
}
export interface Site {
    /**
     * Identifier
     */
    id?: string;
    /**
     * Magic WAN Connector identifier tag.
     */
    connector_id?: string;
    description?: string;
    /**
     * Site high availability mode. If set to true, the site can have two connectors
     * and runs in high availability mode.
     */
    ha_mode?: boolean;
    /**
     * Location of site in latitude and longitude.
     */
    location?: SiteLocation;
    /**
     * The name of the site.
     */
    name?: string;
    /**
     * Magic WAN Connector identifier tag. Used when high availability mode is on.
     */
    secondary_connector_id?: string;
}
/**
 * Location of site in latitude and longitude.
 */
export interface SiteLocation {
    /**
     * Latitude
     */
    lat?: string;
    /**
     * Longitude
     */
    lon?: string;
}
/**
 * Location of site in latitude and longitude.
 */
export interface SiteLocationParam {
    /**
     * Latitude
     */
    lat?: string;
    /**
     * Longitude
     */
    lon?: string;
}
export interface SiteCreateParams {
    /**
     * Path param: Identifier
     */
    account_id: string;
    /**
     * Body param: The name of the site.
     */
    name: string;
    /**
     * Body param: Magic WAN Connector identifier tag.
     */
    connector_id?: string;
    /**
     * Body param:
     */
    description?: string;
    /**
     * Body param: Site high availability mode. If set to true, the site can have two
     * connectors and runs in high availability mode.
     */
    ha_mode?: boolean;
    /**
     * Body param: Location of site in latitude and longitude.
     */
    location?: SiteLocationParam;
    /**
     * Body param: Magic WAN Connector identifier tag. Used when high availability mode
     * is on.
     */
    secondary_connector_id?: string;
}
export interface SiteUpdateParams {
    /**
     * Path param: Identifier
     */
    account_id: string;
    /**
     * Body param: Magic WAN Connector identifier tag.
     */
    connector_id?: string;
    /**
     * Body param:
     */
    description?: string;
    /**
     * Body param: Location of site in latitude and longitude.
     */
    location?: SiteLocationParam;
    /**
     * Body param: The name of the site.
     */
    name?: string;
    /**
     * Body param: Magic WAN Connector identifier tag. Used when high availability mode
     * is on.
     */
    secondary_connector_id?: string;
}
export interface SiteListParams {
    /**
     * Path param: Identifier
     */
    account_id: string;
    /**
     * Query param: Identifier
     */
    connector_identifier?: string;
}
export interface SiteDeleteParams {
    /**
     * Identifier
     */
    account_id: string;
}
export interface SiteGetParams {
    /**
     * Identifier
     */
    account_id: string;
}
export declare namespace Sites {
    export import Site = SitesAPI.Site;
    export import SiteLocation = SitesAPI.SiteLocation;
    export import SitesSinglePage = SitesAPI.SitesSinglePage;
    export import SiteCreateParams = SitesAPI.SiteCreateParams;
    export import SiteUpdateParams = SitesAPI.SiteUpdateParams;
    export import SiteListParams = SitesAPI.SiteListParams;
    export import SiteDeleteParams = SitesAPI.SiteDeleteParams;
    export import SiteGetParams = SitesAPI.SiteGetParams;
    export import ACLs = ACLsAPI.ACLs;
    export import ACL = ACLsAPI.ACL;
    export import ACLConfiguration = ACLsAPI.ACLConfiguration;
    export import AllowedProtocol = ACLsAPI.AllowedProtocol;
    export import Subnet = ACLsAPI.Subnet;
    export import ACLsSinglePage = ACLsAPI.ACLsSinglePage;
    export import ACLCreateParams = ACLsAPI.ACLCreateParams;
    export import ACLUpdateParams = ACLsAPI.ACLUpdateParams;
    export import ACLListParams = ACLsAPI.ACLListParams;
    export import ACLDeleteParams = ACLsAPI.ACLDeleteParams;
    export import ACLGetParams = ACLsAPI.ACLGetParams;
    export import LANs = LANsAPI.LANs;
    export import DHCPRelay = LANsAPI.DHCPRelay;
    export import DHCPServer = LANsAPI.DHCPServer;
    export import LAN = LANsAPI.LAN;
    export import LANStaticAddressing = LANsAPI.LANStaticAddressing;
    export import Nat = LANsAPI.Nat;
    export import RoutedSubnet = LANsAPI.RoutedSubnet;
    export import LANCreateResponse = LANsAPI.LANCreateResponse;
    export import LANsSinglePage = LANsAPI.LANsSinglePage;
    export import LANCreateParams = LANsAPI.LANCreateParams;
    export import LANUpdateParams = LANsAPI.LANUpdateParams;
    export import LANListParams = LANsAPI.LANListParams;
    export import LANDeleteParams = LANsAPI.LANDeleteParams;
    export import LANGetParams = LANsAPI.LANGetParams;
    export import WANs = WANsAPI.WANs;
    export import WAN = WANsAPI.WAN;
    export import WANStaticAddressing = WANsAPI.WANStaticAddressing;
    export import WANCreateResponse = WANsAPI.WANCreateResponse;
    export import WANsSinglePage = WANsAPI.WANsSinglePage;
    export import WANCreateParams = WANsAPI.WANCreateParams;
    export import WANUpdateParams = WANsAPI.WANUpdateParams;
    export import WANListParams = WANsAPI.WANListParams;
    export import WANDeleteParams = WANsAPI.WANDeleteParams;
    export import WANGetParams = WANsAPI.WANGetParams;
}
//# sourceMappingURL=sites.d.ts.map