import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as PostureAPI from 'cloudflare/resources/zero-trust/devices/posture/posture';
import * as IntegrationsAPI from 'cloudflare/resources/zero-trust/devices/posture/integrations';
import { SinglePage } from 'cloudflare/pagination';
export declare class Posture extends APIResource {
    integrations: IntegrationsAPI.Integrations;
    /**
     * Creates a new device posture rule.
     */
    create(params: PostureCreateParams, options?: Core.RequestOptions): Core.APIPromise<DevicePostureRule | null>;
    /**
     * Updates a device posture rule.
     */
    update(ruleId: string, params: PostureUpdateParams, options?: Core.RequestOptions): Core.APIPromise<DevicePostureRule | null>;
    /**
     * Fetches device posture rules for a Zero Trust account.
     */
    list(params: PostureListParams, options?: Core.RequestOptions): Core.PagePromise<DevicePostureRulesSinglePage, DevicePostureRule>;
    /**
     * Deletes a device posture rule.
     */
    delete(ruleId: string, params: PostureDeleteParams, options?: Core.RequestOptions): Core.APIPromise<PostureDeleteResponse | null>;
    /**
     * Fetches a single device posture rule.
     */
    get(ruleId: string, params: PostureGetParams, options?: Core.RequestOptions): Core.APIPromise<DevicePostureRule | null>;
}
export declare class DevicePostureRulesSinglePage extends SinglePage<DevicePostureRule> {
}
export type CarbonblackInput = string;
export interface ClientCertificateInput {
    /**
     * UUID of Cloudflare managed certificate.
     */
    certificate_id: string;
    /**
     * Common Name that is protected by the certificate
     */
    cn: string;
}
export interface CrowdstrikeInput {
    /**
     * Posture Integration ID.
     */
    connection_id: string;
    /**
     * For more details on last seen, please refer to the Crowdstrike documentation.
     */
    last_seen?: string;
    /**
     * operator
     */
    operator?: '<' | '<=' | '>' | '>=' | '==';
    /**
     * Os Version
     */
    os?: string;
    /**
     * overall
     */
    overall?: string;
    /**
     * SensorConfig
     */
    sensor_config?: string;
    /**
     * For more details on state, please refer to the Crowdstrike documentation.
     */
    state?: 'online' | 'offline' | 'unknown';
    /**
     * Version
     */
    version?: string;
    /**
     * Version Operator
     */
    versionOperator?: '<' | '<=' | '>' | '>=' | '==';
}
/**
 * The value to be checked against.
 */
export type DeviceInput = FileInput | UniqueClientIDInput | DomainJoinedInput | OSVersionInput | FirewallInput | SentineloneInput | DeviceInput.TeamsDevicesCarbonblackInputRequest | DiskEncryptionInput | DeviceInput.TeamsDevicesApplicationInputRequest | ClientCertificateInput | WorkspaceOneInput | CrowdstrikeInput | IntuneInput | KolideInput | TaniumInput | SentineloneS2sInput;
export declare namespace DeviceInput {
    interface TeamsDevicesCarbonblackInputRequest {
        /**
         * Operating system
         */
        operating_system: 'windows' | 'linux' | 'mac';
        /**
         * File path.
         */
        path: string;
        /**
         * SHA-256.
         */
        sha256?: string;
        /**
         * Signing certificate thumbprint.
         */
        thumbprint?: string;
    }
    interface TeamsDevicesApplicationInputRequest {
        /**
         * Operating system
         */
        operating_system: 'windows' | 'linux' | 'mac';
        /**
         * Path for the application.
         */
        path: string;
        /**
         * SHA-256.
         */
        sha256?: string;
        /**
         * Signing certificate thumbprint.
         */
        thumbprint?: string;
    }
}
export interface DeviceMatch {
    platform?: 'windows' | 'mac' | 'linux' | 'android' | 'ios';
}
export interface DevicePostureRule {
    /**
     * API UUID.
     */
    id?: string;
    /**
     * The description of the device posture rule.
     */
    description?: string;
    /**
     * Sets the expiration time for a posture check result. If empty, the result
     * remains valid until it is overwritten by new data from the WARP client.
     */
    expiration?: string;
    /**
     * The value to be checked against.
     */
    input?: DeviceInput;
    /**
     * The conditions that the client must match to run the rule.
     */
    match?: Array<DeviceMatch>;
    /**
     * The name of the device posture rule.
     */
    name?: string;
    /**
     * Polling frequency for the WARP client posture check. Default: `5m` (poll every
     * five minutes). Minimum: `1m`.
     */
    schedule?: string;
    /**
     * The type of device posture rule.
     */
    type?: 'file' | 'application' | 'tanium' | 'gateway' | 'warp' | 'disk_encryption' | 'sentinelone' | 'carbonblack' | 'firewall' | 'os_version' | 'domain_joined' | 'client_certificate' | 'unique_client_id' | 'kolide' | 'tanium_s2s' | 'crowdstrike_s2s' | 'intune' | 'workspace_one' | 'sentinelone_s2s';
}
export interface DiskEncryptionInput {
    /**
     * List of volume names to be checked for encryption.
     */
    checkDisks?: Array<CarbonblackInput>;
    /**
     * Whether to check all disks for encryption.
     */
    requireAll?: boolean;
}
export interface DomainJoinedInput {
    /**
     * Operating System
     */
    operating_system: 'windows';
    /**
     * Domain
     */
    domain?: string;
}
export interface FileInput {
    /**
     * Operating system
     */
    operating_system: 'windows' | 'linux' | 'mac';
    /**
     * File path.
     */
    path: string;
    /**
     * Whether or not file exists
     */
    exists?: boolean;
    /**
     * SHA-256.
     */
    sha256?: string;
    /**
     * Signing certificate thumbprint.
     */
    thumbprint?: string;
}
export interface FirewallInput {
    /**
     * Enabled
     */
    enabled: boolean;
    /**
     * Operating System
     */
    operating_system: 'windows' | 'mac';
}
export interface IntuneInput {
    /**
     * Compliance Status
     */
    compliance_status: 'compliant' | 'noncompliant' | 'unknown' | 'notapplicable' | 'ingraceperiod' | 'error';
    /**
     * Posture Integration ID.
     */
    connection_id: string;
}
export interface KolideInput {
    /**
     * Posture Integration ID.
     */
    connection_id: string;
    /**
     * Count Operator
     */
    countOperator: '<' | '<=' | '>' | '>=' | '==';
    /**
     * The Number of Issues.
     */
    issue_count: string;
}
export interface OSVersionInput {
    /**
     * Operating System
     */
    operating_system: 'windows';
    /**
     * operator
     */
    operator: '<' | '<=' | '>' | '>=' | '==';
    /**
     * Version of OS
     */
    version: string;
    /**
     * Operating System Distribution Name (linux only)
     */
    os_distro_name?: string;
    /**
     * Version of OS Distribution (linux only)
     */
    os_distro_revision?: string;
    /**
     * Additional version data. For Mac or iOS, the Product Verison Extra. For Linux,
     * the kernel release version. (Mac, iOS, and Linux only)
     */
    os_version_extra?: string;
}
export interface SentineloneInput {
    /**
     * Operating system
     */
    operating_system: 'windows' | 'linux' | 'mac';
    /**
     * File path.
     */
    path: string;
    /**
     * SHA-256.
     */
    sha256?: string;
    /**
     * Signing certificate thumbprint.
     */
    thumbprint?: string;
}
export interface SentineloneS2sInput {
    /**
     * Posture Integration ID.
     */
    connection_id: string;
    /**
     * The Number of active threats.
     */
    active_threats?: number;
    /**
     * Whether device is infected.
     */
    infected?: boolean;
    /**
     * Whether device is active.
     */
    is_active?: boolean;
    /**
     * Network status of device.
     */
    network_status?: 'connected' | 'disconnected' | 'disconnecting' | 'connecting';
    /**
     * operator
     */
    operator?: '<' | '<=' | '>' | '>=' | '==';
}
export interface TaniumInput {
    /**
     * Posture Integration ID.
     */
    connection_id: string;
    /**
     * For more details on eid last seen, refer to the Tanium documentation.
     */
    eid_last_seen?: string;
    /**
     * Operator to evaluate risk_level or eid_last_seen.
     */
    operator?: '<' | '<=' | '>' | '>=' | '==';
    /**
     * For more details on risk level, refer to the Tanium documentation.
     */
    risk_level?: 'low' | 'medium' | 'high' | 'critical';
    /**
     * Score Operator
     */
    scoreOperator?: '<' | '<=' | '>' | '>=' | '==';
    /**
     * For more details on total score, refer to the Tanium documentation.
     */
    total_score?: number;
}
export interface UniqueClientIDInput {
    /**
     * List ID.
     */
    id: string;
    /**
     * Operating System
     */
    operating_system: 'android' | 'ios' | 'chromeos';
}
export interface WorkspaceOneInput {
    /**
     * Compliance Status
     */
    compliance_status: 'compliant' | 'noncompliant' | 'unknown';
    /**
     * Posture Integration ID.
     */
    connection_id: string;
}
export interface PostureDeleteResponse {
    /**
     * API UUID.
     */
    id?: string;
}
export interface PostureCreateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param: The name of the device posture rule.
     */
    name: string;
    /**
     * Body param: The type of device posture rule.
     */
    type: 'file' | 'application' | 'tanium' | 'gateway' | 'warp' | 'disk_encryption' | 'sentinelone' | 'carbonblack' | 'firewall' | 'os_version' | 'domain_joined' | 'client_certificate' | 'unique_client_id' | 'kolide' | 'tanium_s2s' | 'crowdstrike_s2s' | 'intune' | 'workspace_one' | 'sentinelone_s2s';
    /**
     * Body param: The description of the device posture rule.
     */
    description?: string;
    /**
     * Body param: Sets the expiration time for a posture check result. If empty, the
     * result remains valid until it is overwritten by new data from the WARP client.
     */
    expiration?: string;
    /**
     * Body param: The value to be checked against.
     */
    input?: DeviceInput;
    /**
     * Body param: The conditions that the client must match to run the rule.
     */
    match?: Array<DeviceMatch>;
    /**
     * Body param: Polling frequency for the WARP client posture check. Default: `5m`
     * (poll every five minutes). Minimum: `1m`.
     */
    schedule?: string;
}
export interface PostureUpdateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param: The name of the device posture rule.
     */
    name: string;
    /**
     * Body param: The type of device posture rule.
     */
    type: 'file' | 'application' | 'tanium' | 'gateway' | 'warp' | 'disk_encryption' | 'sentinelone' | 'carbonblack' | 'firewall' | 'os_version' | 'domain_joined' | 'client_certificate' | 'unique_client_id' | 'kolide' | 'tanium_s2s' | 'crowdstrike_s2s' | 'intune' | 'workspace_one' | 'sentinelone_s2s';
    /**
     * Body param: The description of the device posture rule.
     */
    description?: string;
    /**
     * Body param: Sets the expiration time for a posture check result. If empty, the
     * result remains valid until it is overwritten by new data from the WARP client.
     */
    expiration?: string;
    /**
     * Body param: The value to be checked against.
     */
    input?: DeviceInput;
    /**
     * Body param: The conditions that the client must match to run the rule.
     */
    match?: Array<DeviceMatch>;
    /**
     * Body param: Polling frequency for the WARP client posture check. Default: `5m`
     * (poll every five minutes). Minimum: `1m`.
     */
    schedule?: string;
}
export interface PostureListParams {
    account_id: string;
}
export interface PostureDeleteParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param:
     */
    body: unknown;
}
export interface PostureGetParams {
    account_id: string;
}
export declare namespace Posture {
    export import CarbonblackInput = PostureAPI.CarbonblackInput;
    export import ClientCertificateInput = PostureAPI.ClientCertificateInput;
    export import CrowdstrikeInput = PostureAPI.CrowdstrikeInput;
    export import DeviceInput = PostureAPI.DeviceInput;
    export import DeviceMatch = PostureAPI.DeviceMatch;
    export import DevicePostureRule = PostureAPI.DevicePostureRule;
    export import DiskEncryptionInput = PostureAPI.DiskEncryptionInput;
    export import DomainJoinedInput = PostureAPI.DomainJoinedInput;
    export import FileInput = PostureAPI.FileInput;
    export import FirewallInput = PostureAPI.FirewallInput;
    export import IntuneInput = PostureAPI.IntuneInput;
    export import KolideInput = PostureAPI.KolideInput;
    export import OSVersionInput = PostureAPI.OSVersionInput;
    export import SentineloneInput = PostureAPI.SentineloneInput;
    export import SentineloneS2sInput = PostureAPI.SentineloneS2sInput;
    export import TaniumInput = PostureAPI.TaniumInput;
    export import UniqueClientIDInput = PostureAPI.UniqueClientIDInput;
    export import WorkspaceOneInput = PostureAPI.WorkspaceOneInput;
    export import PostureDeleteResponse = PostureAPI.PostureDeleteResponse;
    export import DevicePostureRulesSinglePage = PostureAPI.DevicePostureRulesSinglePage;
    export import PostureCreateParams = PostureAPI.PostureCreateParams;
    export import PostureUpdateParams = PostureAPI.PostureUpdateParams;
    export import PostureListParams = PostureAPI.PostureListParams;
    export import PostureDeleteParams = PostureAPI.PostureDeleteParams;
    export import PostureGetParams = PostureAPI.PostureGetParams;
    export import Integrations = IntegrationsAPI.Integrations;
    export import Integration = IntegrationsAPI.Integration;
    export import IntegrationDeleteResponse = IntegrationsAPI.IntegrationDeleteResponse;
    export import IntegrationsSinglePage = IntegrationsAPI.IntegrationsSinglePage;
    export import IntegrationCreateParams = IntegrationsAPI.IntegrationCreateParams;
    export import IntegrationListParams = IntegrationsAPI.IntegrationListParams;
    export import IntegrationDeleteParams = IntegrationsAPI.IntegrationDeleteParams;
    export import IntegrationEditParams = IntegrationsAPI.IntegrationEditParams;
    export import IntegrationGetParams = IntegrationsAPI.IntegrationGetParams;
}
//# sourceMappingURL=posture.d.ts.map