import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as SitesAPI from 'cloudflare/resources/magic-transit/sites/sites';
import * as ACLsAPI from 'cloudflare/resources/magic-transit/sites/acls';
import * as LansAPI from 'cloudflare/resources/magic-transit/sites/lans';
import * as WansAPI from 'cloudflare/resources/magic-transit/sites/wans';
export declare class Sites extends APIResource {
    acls: ACLsAPI.ACLs;
    lans: LansAPI.Lans;
    wans: WansAPI.Wans;
    /**
     * Creates a new Site
     */
    create(accountIdentifier: string, body: SiteCreateParams, options?: Core.RequestOptions): Core.APIPromise<SiteCreateResponse>;
    /**
     * Update a specific Site.
     */
    update(accountIdentifier: string, siteIdentifier: string, body: SiteUpdateParams, options?: Core.RequestOptions): Core.APIPromise<SiteUpdateResponse>;
    /**
     * 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(accountIdentifier: string, options?: Core.RequestOptions): Core.APIPromise<SiteListResponse>;
    /**
     * Remove a specific Site.
     */
    delete(accountIdentifier: string, siteIdentifier: string, options?: Core.RequestOptions): Core.APIPromise<SiteDeleteResponse>;
    /**
     * Get a specific Site.
     */
    get(accountIdentifier: string, siteIdentifier: string, options?: Core.RequestOptions): Core.APIPromise<SiteGetResponse>;
}
export interface SiteCreateResponse {
    site?: SiteCreateResponse.Site;
}
export declare namespace SiteCreateResponse {
    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?: Site.Location;
        /**
         * The name of the site.
         */
        name?: string;
        /**
         * Magic WAN Connector identifier tag. Used when high availability mode is on.
         */
        secondary_connector_id?: string;
    }
    namespace Site {
        /**
         * Location of site in latitude and longitude.
         */
        interface Location {
            /**
             * Latitude
             */
            lat?: string;
            /**
             * Longitude
             */
            lon?: string;
        }
    }
}
export interface SiteUpdateResponse {
    site?: SiteUpdateResponse.Site;
}
export declare namespace SiteUpdateResponse {
    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?: Site.Location;
        /**
         * The name of the site.
         */
        name?: string;
        /**
         * Magic WAN Connector identifier tag. Used when high availability mode is on.
         */
        secondary_connector_id?: string;
    }
    namespace Site {
        /**
         * Location of site in latitude and longitude.
         */
        interface Location {
            /**
             * Latitude
             */
            lat?: string;
            /**
             * Longitude
             */
            lon?: string;
        }
    }
}
export interface SiteListResponse {
    sites?: Array<SiteListResponse.Site>;
}
export declare namespace SiteListResponse {
    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?: Site.Location;
        /**
         * The name of the site.
         */
        name?: string;
        /**
         * Magic WAN Connector identifier tag. Used when high availability mode is on.
         */
        secondary_connector_id?: string;
    }
    namespace Site {
        /**
         * Location of site in latitude and longitude.
         */
        interface Location {
            /**
             * Latitude
             */
            lat?: string;
            /**
             * Longitude
             */
            lon?: string;
        }
    }
}
export interface SiteDeleteResponse {
    deleted?: boolean;
    deleted_site?: SiteDeleteResponse.DeletedSite;
}
export declare namespace SiteDeleteResponse {
    interface DeletedSite {
        /**
         * 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?: DeletedSite.Location;
        /**
         * The name of the site.
         */
        name?: string;
        /**
         * Magic WAN Connector identifier tag. Used when high availability mode is on.
         */
        secondary_connector_id?: string;
    }
    namespace DeletedSite {
        /**
         * Location of site in latitude and longitude.
         */
        interface Location {
            /**
             * Latitude
             */
            lat?: string;
            /**
             * Longitude
             */
            lon?: string;
        }
    }
}
export interface SiteGetResponse {
    site?: SiteGetResponse.Site;
}
export declare namespace SiteGetResponse {
    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?: Site.Location;
        /**
         * The name of the site.
         */
        name?: string;
        /**
         * Magic WAN Connector identifier tag. Used when high availability mode is on.
         */
        secondary_connector_id?: string;
    }
    namespace Site {
        /**
         * Location of site in latitude and longitude.
         */
        interface Location {
            /**
             * Latitude
             */
            lat?: string;
            /**
             * Longitude
             */
            lon?: string;
        }
    }
}
export interface SiteCreateParams {
    site?: SiteCreateParams.Site;
}
export declare namespace SiteCreateParams {
    interface Site {
        /**
         * The name of the site.
         */
        name: 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?: Site.Location;
        /**
         * Magic WAN Connector identifier tag. Used when high availability mode is on.
         */
        secondary_connector_id?: string;
    }
    namespace Site {
        /**
         * Location of site in latitude and longitude.
         */
        interface Location {
            /**
             * Latitude
             */
            lat?: string;
            /**
             * Longitude
             */
            lon?: string;
        }
    }
}
export interface SiteUpdateParams {
    site?: SiteUpdateParams.Site;
}
export declare namespace SiteUpdateParams {
    interface Site {
        /**
         * Magic WAN Connector identifier tag.
         */
        connector_id?: string;
        description?: string;
        /**
         * Location of site in latitude and longitude.
         */
        location?: Site.Location;
        /**
         * The name of the site.
         */
        name?: string;
        /**
         * Magic WAN Connector identifier tag. Used when high availability mode is on.
         */
        secondary_connector_id?: string;
    }
    namespace Site {
        /**
         * Location of site in latitude and longitude.
         */
        interface Location {
            /**
             * Latitude
             */
            lat?: string;
            /**
             * Longitude
             */
            lon?: string;
        }
    }
}
export declare namespace Sites {
    export import SiteCreateResponse = SitesAPI.SiteCreateResponse;
    export import SiteUpdateResponse = SitesAPI.SiteUpdateResponse;
    export import SiteListResponse = SitesAPI.SiteListResponse;
    export import SiteDeleteResponse = SitesAPI.SiteDeleteResponse;
    export import SiteGetResponse = SitesAPI.SiteGetResponse;
    export import SiteCreateParams = SitesAPI.SiteCreateParams;
    export import SiteUpdateParams = SitesAPI.SiteUpdateParams;
    export import ACLs = ACLsAPI.ACLs;
    export import ACLCreateResponse = ACLsAPI.ACLCreateResponse;
    export import ACLUpdateResponse = ACLsAPI.ACLUpdateResponse;
    export import ACLListResponse = ACLsAPI.ACLListResponse;
    export import ACLDeleteResponse = ACLsAPI.ACLDeleteResponse;
    export import ACLGetResponse = ACLsAPI.ACLGetResponse;
    export import ACLCreateParams = ACLsAPI.ACLCreateParams;
    export import ACLUpdateParams = ACLsAPI.ACLUpdateParams;
    export import Lans = LansAPI.Lans;
    export import LanCreateResponse = LansAPI.LanCreateResponse;
    export import LanUpdateResponse = LansAPI.LanUpdateResponse;
    export import LanListResponse = LansAPI.LanListResponse;
    export import LanDeleteResponse = LansAPI.LanDeleteResponse;
    export import LanGetResponse = LansAPI.LanGetResponse;
    export import LanCreateParams = LansAPI.LanCreateParams;
    export import LanUpdateParams = LansAPI.LanUpdateParams;
    export import Wans = WansAPI.Wans;
    export import WanCreateResponse = WansAPI.WanCreateResponse;
    export import WanUpdateResponse = WansAPI.WanUpdateResponse;
    export import WanListResponse = WansAPI.WanListResponse;
    export import WanDeleteResponse = WansAPI.WanDeleteResponse;
    export import WanGetResponse = WansAPI.WanGetResponse;
    export import WanCreateParams = WansAPI.WanCreateParams;
    export import WanUpdateParams = WansAPI.WanUpdateParams;
}
//# sourceMappingURL=sites.d.ts.map