import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as PCAPsAPI from 'cloudflare/resources/pcaps/pcaps';
import * as DownloadsAPI from 'cloudflare/resources/pcaps/downloads';
import * as OwnershipsAPI from 'cloudflare/resources/pcaps/ownerships';
export declare class PCAPs extends APIResource {
    ownerships: OwnershipsAPI.Ownerships;
    downloads: DownloadsAPI.Downloads;
    /**
     * Create new PCAP request for account.
     */
    create(params: PCAPCreateParams, options?: Core.RequestOptions): Core.APIPromise<PCAPCreateResponse>;
    /**
     * Lists all packet capture requests for an account.
     */
    list(params: PCAPListParams, options?: Core.RequestOptions): Core.APIPromise<PCAPListResponse | null>;
    /**
     * Get information for a PCAP request by id.
     */
    get(pcapId: string, params: PCAPGetParams, options?: Core.RequestOptions): Core.APIPromise<PCAPGetResponse>;
}
export type PCAPCreateResponse = PCAPCreateResponse.MagicVisibilityPCAPsResponseSimple | PCAPCreateResponse.MagicVisibilityPCAPsResponseFull;
export declare namespace PCAPCreateResponse {
    interface MagicVisibilityPCAPsResponseSimple {
        /**
         * The ID for the packet capture.
         */
        id?: string;
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        filter_v1?: MagicVisibilityPCAPsResponseSimple.FilterV1;
        /**
         * The status of the packet capture request.
         */
        status?: 'unknown' | 'success' | 'pending' | 'running' | 'conversion_pending' | 'conversion_running' | 'complete' | 'failed';
        /**
         * The RFC 3339 timestamp when the packet capture was created.
         */
        submitted?: string;
        /**
         * The system used to collect packet captures.
         */
        system?: 'magic-transit';
        /**
         * The packet capture duration in seconds.
         */
        time_limit?: number;
        /**
         * The type of packet capture. `Simple` captures sampled packets, and `full`
         * captures entire payloads and non-sampled packets.
         */
        type?: 'simple' | 'full';
    }
    namespace MagicVisibilityPCAPsResponseSimple {
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        interface FilterV1 {
            /**
             * The destination IP address of the packet.
             */
            destination_address?: string;
            /**
             * The destination port of the packet.
             */
            destination_port?: number;
            /**
             * The protocol number of the packet.
             */
            protocol?: number;
            /**
             * The source IP address of the packet.
             */
            source_address?: string;
            /**
             * The source port of the packet.
             */
            source_port?: number;
        }
    }
    interface MagicVisibilityPCAPsResponseFull {
        /**
         * The ID for the packet capture.
         */
        id?: string;
        /**
         * The maximum number of bytes to capture. This field only applies to `full` packet
         * captures.
         */
        byte_limit?: number;
        /**
         * The name of the data center used for the packet capture. This can be a specific
         * colo (ord02) or a multi-colo name (ORD). This field only applies to `full`
         * packet captures.
         */
        colo_name?: string;
        /**
         * The full URI for the bucket. This field only applies to `full` packet captures.
         */
        destination_conf?: string;
        /**
         * An error message that describes why the packet capture failed. This field only
         * applies to `full` packet captures.
         */
        error_message?: string;
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        filter_v1?: MagicVisibilityPCAPsResponseFull.FilterV1;
        /**
         * The status of the packet capture request.
         */
        status?: 'unknown' | 'success' | 'pending' | 'running' | 'conversion_pending' | 'conversion_running' | 'complete' | 'failed';
        /**
         * The RFC 3339 timestamp when the packet capture was created.
         */
        submitted?: string;
        /**
         * The system used to collect packet captures.
         */
        system?: 'magic-transit';
        /**
         * The packet capture duration in seconds.
         */
        time_limit?: number;
        /**
         * The type of packet capture. `Simple` captures sampled packets, and `full`
         * captures entire payloads and non-sampled packets.
         */
        type?: 'simple' | 'full';
    }
    namespace MagicVisibilityPCAPsResponseFull {
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        interface FilterV1 {
            /**
             * The destination IP address of the packet.
             */
            destination_address?: string;
            /**
             * The destination port of the packet.
             */
            destination_port?: number;
            /**
             * The protocol number of the packet.
             */
            protocol?: number;
            /**
             * The source IP address of the packet.
             */
            source_address?: string;
            /**
             * The source port of the packet.
             */
            source_port?: number;
        }
    }
}
export type PCAPListResponse = Array<PCAPListResponse.MagicVisibilityPCAPsResponseSimple | PCAPListResponse.MagicVisibilityPCAPsResponseFull>;
export declare namespace PCAPListResponse {
    interface MagicVisibilityPCAPsResponseSimple {
        /**
         * The ID for the packet capture.
         */
        id?: string;
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        filter_v1?: MagicVisibilityPCAPsResponseSimple.FilterV1;
        /**
         * The status of the packet capture request.
         */
        status?: 'unknown' | 'success' | 'pending' | 'running' | 'conversion_pending' | 'conversion_running' | 'complete' | 'failed';
        /**
         * The RFC 3339 timestamp when the packet capture was created.
         */
        submitted?: string;
        /**
         * The system used to collect packet captures.
         */
        system?: 'magic-transit';
        /**
         * The packet capture duration in seconds.
         */
        time_limit?: number;
        /**
         * The type of packet capture. `Simple` captures sampled packets, and `full`
         * captures entire payloads and non-sampled packets.
         */
        type?: 'simple' | 'full';
    }
    namespace MagicVisibilityPCAPsResponseSimple {
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        interface FilterV1 {
            /**
             * The destination IP address of the packet.
             */
            destination_address?: string;
            /**
             * The destination port of the packet.
             */
            destination_port?: number;
            /**
             * The protocol number of the packet.
             */
            protocol?: number;
            /**
             * The source IP address of the packet.
             */
            source_address?: string;
            /**
             * The source port of the packet.
             */
            source_port?: number;
        }
    }
    interface MagicVisibilityPCAPsResponseFull {
        /**
         * The ID for the packet capture.
         */
        id?: string;
        /**
         * The maximum number of bytes to capture. This field only applies to `full` packet
         * captures.
         */
        byte_limit?: number;
        /**
         * The name of the data center used for the packet capture. This can be a specific
         * colo (ord02) or a multi-colo name (ORD). This field only applies to `full`
         * packet captures.
         */
        colo_name?: string;
        /**
         * The full URI for the bucket. This field only applies to `full` packet captures.
         */
        destination_conf?: string;
        /**
         * An error message that describes why the packet capture failed. This field only
         * applies to `full` packet captures.
         */
        error_message?: string;
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        filter_v1?: MagicVisibilityPCAPsResponseFull.FilterV1;
        /**
         * The status of the packet capture request.
         */
        status?: 'unknown' | 'success' | 'pending' | 'running' | 'conversion_pending' | 'conversion_running' | 'complete' | 'failed';
        /**
         * The RFC 3339 timestamp when the packet capture was created.
         */
        submitted?: string;
        /**
         * The system used to collect packet captures.
         */
        system?: 'magic-transit';
        /**
         * The packet capture duration in seconds.
         */
        time_limit?: number;
        /**
         * The type of packet capture. `Simple` captures sampled packets, and `full`
         * captures entire payloads and non-sampled packets.
         */
        type?: 'simple' | 'full';
    }
    namespace MagicVisibilityPCAPsResponseFull {
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        interface FilterV1 {
            /**
             * The destination IP address of the packet.
             */
            destination_address?: string;
            /**
             * The destination port of the packet.
             */
            destination_port?: number;
            /**
             * The protocol number of the packet.
             */
            protocol?: number;
            /**
             * The source IP address of the packet.
             */
            source_address?: string;
            /**
             * The source port of the packet.
             */
            source_port?: number;
        }
    }
}
export type PCAPGetResponse = PCAPGetResponse.MagicVisibilityPCAPsResponseSimple | PCAPGetResponse.MagicVisibilityPCAPsResponseFull;
export declare namespace PCAPGetResponse {
    interface MagicVisibilityPCAPsResponseSimple {
        /**
         * The ID for the packet capture.
         */
        id?: string;
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        filter_v1?: MagicVisibilityPCAPsResponseSimple.FilterV1;
        /**
         * The status of the packet capture request.
         */
        status?: 'unknown' | 'success' | 'pending' | 'running' | 'conversion_pending' | 'conversion_running' | 'complete' | 'failed';
        /**
         * The RFC 3339 timestamp when the packet capture was created.
         */
        submitted?: string;
        /**
         * The system used to collect packet captures.
         */
        system?: 'magic-transit';
        /**
         * The packet capture duration in seconds.
         */
        time_limit?: number;
        /**
         * The type of packet capture. `Simple` captures sampled packets, and `full`
         * captures entire payloads and non-sampled packets.
         */
        type?: 'simple' | 'full';
    }
    namespace MagicVisibilityPCAPsResponseSimple {
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        interface FilterV1 {
            /**
             * The destination IP address of the packet.
             */
            destination_address?: string;
            /**
             * The destination port of the packet.
             */
            destination_port?: number;
            /**
             * The protocol number of the packet.
             */
            protocol?: number;
            /**
             * The source IP address of the packet.
             */
            source_address?: string;
            /**
             * The source port of the packet.
             */
            source_port?: number;
        }
    }
    interface MagicVisibilityPCAPsResponseFull {
        /**
         * The ID for the packet capture.
         */
        id?: string;
        /**
         * The maximum number of bytes to capture. This field only applies to `full` packet
         * captures.
         */
        byte_limit?: number;
        /**
         * The name of the data center used for the packet capture. This can be a specific
         * colo (ord02) or a multi-colo name (ORD). This field only applies to `full`
         * packet captures.
         */
        colo_name?: string;
        /**
         * The full URI for the bucket. This field only applies to `full` packet captures.
         */
        destination_conf?: string;
        /**
         * An error message that describes why the packet capture failed. This field only
         * applies to `full` packet captures.
         */
        error_message?: string;
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        filter_v1?: MagicVisibilityPCAPsResponseFull.FilterV1;
        /**
         * The status of the packet capture request.
         */
        status?: 'unknown' | 'success' | 'pending' | 'running' | 'conversion_pending' | 'conversion_running' | 'complete' | 'failed';
        /**
         * The RFC 3339 timestamp when the packet capture was created.
         */
        submitted?: string;
        /**
         * The system used to collect packet captures.
         */
        system?: 'magic-transit';
        /**
         * The packet capture duration in seconds.
         */
        time_limit?: number;
        /**
         * The type of packet capture. `Simple` captures sampled packets, and `full`
         * captures entire payloads and non-sampled packets.
         */
        type?: 'simple' | 'full';
    }
    namespace MagicVisibilityPCAPsResponseFull {
        /**
         * The packet capture filter. When this field is empty, all packets are captured.
         */
        interface FilterV1 {
            /**
             * The destination IP address of the packet.
             */
            destination_address?: string;
            /**
             * The destination port of the packet.
             */
            destination_port?: number;
            /**
             * The protocol number of the packet.
             */
            protocol?: number;
            /**
             * The source IP address of the packet.
             */
            source_address?: string;
            /**
             * The source port of the packet.
             */
            source_port?: number;
        }
    }
}
export interface PCAPCreateParams {
    /**
     * Path param: Identifier
     */
    account_id: string;
    /**
     * Body param: The system used to collect packet captures.
     */
    system: 'magic-transit';
    /**
     * Body param: The packet capture duration in seconds.
     */
    time_limit: number;
    /**
     * Body param: The type of packet capture. `Simple` captures sampled packets, and
     * `full` captures entire payloads and non-sampled packets.
     */
    type: 'simple' | 'full';
    /**
     * Body param: The maximum number of bytes to capture. This field only applies to
     * `full` packet captures.
     */
    byte_limit?: number;
    /**
     * Body param: The name of the data center used for the packet capture. This can be
     * a specific colo (ord02) or a multi-colo name (ORD). This field only applies to
     * `full` packet captures.
     */
    colo_name?: string;
    /**
     * Body param: The full URI for the bucket. This field only applies to `full`
     * packet captures.
     */
    destination_conf?: string;
    /**
     * Body param:
     */
    filter_v1?: PCAPCreateParams.FilterV1;
    /**
     * Body param: The limit of packets contained in a packet capture.
     */
    packet_limit?: number;
}
export declare namespace PCAPCreateParams {
    interface FilterV1 {
        /**
         * The destination IP address of the packet.
         */
        destination_address?: string;
        /**
         * The destination port of the packet.
         */
        destination_port?: number;
        /**
         * The protocol number of the packet.
         */
        protocol?: number;
        /**
         * The source IP address of the packet.
         */
        source_address?: string;
        /**
         * The source port of the packet.
         */
        source_port?: number;
    }
}
export interface PCAPListParams {
    /**
     * Identifier
     */
    account_id: string;
}
export interface PCAPGetParams {
    /**
     * Identifier
     */
    account_id: string;
}
export declare namespace PCAPs {
    export import PCAPCreateResponse = PCAPsAPI.PCAPCreateResponse;
    export import PCAPListResponse = PCAPsAPI.PCAPListResponse;
    export import PCAPGetResponse = PCAPsAPI.PCAPGetResponse;
    export import PCAPCreateParams = PCAPsAPI.PCAPCreateParams;
    export import PCAPListParams = PCAPsAPI.PCAPListParams;
    export import PCAPGetParams = PCAPsAPI.PCAPGetParams;
    export import Ownerships = OwnershipsAPI.Ownerships;
    export import MagicVisibilityPCAPsOwnership = OwnershipsAPI.MagicVisibilityPCAPsOwnership;
    export import OwnershipGetResponse = OwnershipsAPI.OwnershipGetResponse;
    export import OwnershipCreateParams = OwnershipsAPI.OwnershipCreateParams;
    export import OwnershipDeleteParams = OwnershipsAPI.OwnershipDeleteParams;
    export import OwnershipGetParams = OwnershipsAPI.OwnershipGetParams;
    export import OwnershipValidateParams = OwnershipsAPI.OwnershipValidateParams;
    export import Downloads = DownloadsAPI.Downloads;
    export import DownloadGetParams = DownloadsAPI.DownloadGetParams;
}
//# sourceMappingURL=pcaps.d.ts.map