import * as Core from 'cloudflaredev/core';
import { APIResource } from 'cloudflaredev/resource';
import * as ExcludesAPI from 'cloudflaredev/resources/zero-trust/devices/policies/excludes';
import { SinglePage } from 'cloudflaredev/pagination';
export declare class Excludes extends APIResource {
    /**
     * Sets the list of routes excluded from the WARP client's tunnel.
     */
    update(params: ExcludeUpdateParams, options?: Core.RequestOptions): Core.APIPromise<ExcludeUpdateResponse | null>;
    /**
     * Fetches the list of routes excluded from the WARP client's tunnel.
     */
    list(params: ExcludeListParams, options?: Core.RequestOptions): Core.PagePromise<SplitTunnelExcludesSinglePage, SplitTunnelExclude>;
    /**
     * Fetches the list of routes excluded from the WARP client's tunnel for a specific
     * device settings profile.
     */
    get(policyId: string, params: ExcludeGetParams, options?: Core.RequestOptions): Core.APIPromise<ExcludeGetResponse | null>;
}
export declare class SplitTunnelExcludesSinglePage extends SinglePage<SplitTunnelExclude> {
}
export interface SplitTunnelExclude {
    /**
     * The address in CIDR format to exclude from the tunnel. If `address` is present,
     * `host` must not be present.
     */
    address: string;
    /**
     * A description of the Split Tunnel item, displayed in the client UI.
     */
    description: string;
    /**
     * The domain name to exclude from the tunnel. If `host` is present, `address` must
     * not be present.
     */
    host?: string;
}
export interface SplitTunnelExcludeParam {
    /**
     * The address in CIDR format to exclude from the tunnel. If `address` is present,
     * `host` must not be present.
     */
    address: string;
    /**
     * A description of the Split Tunnel item, displayed in the client UI.
     */
    description: string;
    /**
     * The domain name to exclude from the tunnel. If `host` is present, `address` must
     * not be present.
     */
    host?: string;
}
export type ExcludeUpdateResponse = Array<SplitTunnelExclude>;
export type ExcludeGetResponse = Array<SplitTunnelExclude>;
export interface ExcludeUpdateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param:
     */
    body: Array<SplitTunnelExcludeParam>;
}
export interface ExcludeListParams {
    account_id: string;
}
export interface ExcludeGetParams {
    account_id: string;
}
export declare namespace Excludes {
    export import SplitTunnelExclude = ExcludesAPI.SplitTunnelExclude;
    export import ExcludeUpdateResponse = ExcludesAPI.ExcludeUpdateResponse;
    export import ExcludeGetResponse = ExcludesAPI.ExcludeGetResponse;
    export import SplitTunnelExcludesSinglePage = ExcludesAPI.SplitTunnelExcludesSinglePage;
    export import ExcludeUpdateParams = ExcludesAPI.ExcludeUpdateParams;
    export import ExcludeListParams = ExcludesAPI.ExcludeListParams;
    export import ExcludeGetParams = ExcludesAPI.ExcludeGetParams;
}
//# sourceMappingURL=excludes.d.ts.map