import { APIResource } from "../../../../../core/resource.mjs";
import * as RemediationTypesAPI from "./remediation-types.mjs";
import { BaseRemediationTypes, RemediationTypeListParams, RemediationTypeListResponse, RemediationTypeListResponsesV4PagePaginationArray, RemediationTypes } from "./remediation-types.mjs";
import { APIPromise } from "../../../../../core/api-promise.mjs";
import { PagePromise, V4PagePaginationArray, type V4PagePaginationArrayParams } from "../../../../../core/pagination.mjs";
import { RequestOptions } from "../../../../../internal/request-options.mjs";
export declare class BaseFindingTypes extends APIResource {
    static readonly _key: readonly ['zeroTrust', 'casb', 'posture', 'findingTypes'];
    /**
     * List all available finding types with pagination support.
     *
     * @example
     * ```ts
     * // Automatically fetches more pages as needed.
     * for await (const findingTypeListResponse of client.zeroTrust.casb.posture.findingTypes.list(
     *   { account_id: '46148281d8a93d002ef242d8b0d5f9f6' },
     * )) {
     *   // ...
     * }
     * ```
     */
    list(params: FindingTypeListParams, options?: RequestOptions): PagePromise<FindingTypeListResponsesV4PagePaginationArray, FindingTypeListResponse>;
    /**
     * Retrieve a specific finding type by its unique identifier.
     *
     * @example
     * ```ts
     * const findingType =
     *   await client.zeroTrust.casb.posture.findingTypes.get(
     *     '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
     *     { account_id: '46148281d8a93d002ef242d8b0d5f9f6' },
     *   );
     * ```
     */
    get(findingTypeID: string, params: FindingTypeGetParams, options?: RequestOptions): APIPromise<FindingTypeGetResponse>;
}
export declare class FindingTypes extends BaseFindingTypes {
    remediationTypes: RemediationTypesAPI.RemediationTypes;
}
export type FindingTypeListResponsesV4PagePaginationArray = V4PagePaginationArray<FindingTypeListResponse>;
/**
 * Basic finding type information.
 */
export interface FindingTypeListResponse {
    /**
     * The unique identifier of the finding.
     */
    id: string;
    /**
     * Category information for a finding.
     */
    category: FindingTypeListResponse.Category;
    /**
     * The name of the finding.
     */
    name: string;
    /**
     * Default severity used when no integration-specific severity override exists.
     */
    severity: 'Critical' | 'High' | 'Medium' | 'Low';
    /**
     * The SaaS/Cloud vendor of the platform with which the finding is associated.
     */
    vendor: string;
    /**
     * Detailed description of the finding.
     */
    description?: string | null;
}
export declare namespace FindingTypeListResponse {
    /**
     * Category information for a finding.
     */
    interface Category {
        /**
         * The type of the observation.
         */
        observation: 'Issue' | 'Insight' | 'Activity';
        /**
         * The product category.
         */
        product: 'SaaS' | 'Cloud';
        /**
         * The type of the finding category.
         */
        type: 'Content' | 'Posture';
    }
}
/**
 * Basic finding type information.
 */
export interface FindingTypeGetResponse {
    /**
     * The unique identifier of the finding.
     */
    id: string;
    /**
     * Category information for a finding.
     */
    category: FindingTypeGetResponse.Category;
    /**
     * The name of the finding.
     */
    name: string;
    /**
     * Default severity used when no integration-specific severity override exists.
     */
    severity: 'Critical' | 'High' | 'Medium' | 'Low';
    /**
     * The SaaS/Cloud vendor of the platform with which the finding is associated.
     */
    vendor: string;
    /**
     * Detailed description of the finding.
     */
    description?: string | null;
}
export declare namespace FindingTypeGetResponse {
    /**
     * Category information for a finding.
     */
    interface Category {
        /**
         * The type of the observation.
         */
        observation: 'Issue' | 'Insight' | 'Activity';
        /**
         * The product category.
         */
        product: 'SaaS' | 'Cloud';
        /**
         * The type of the finding category.
         */
        type: 'Content' | 'Posture';
    }
}
export interface FindingTypeListParams extends V4PagePaginationArrayParams {
    /**
     * Path param: Cloudflare account ID for the user making the request.
     */
    account_id: string;
    /**
     * Query param: Filter finding types by name or ID (case-insensitive substring
     * match).
     */
    search?: string;
    /**
     * Query param: Filter finding types by vendor. Supports multiple comma-separated
     * values. Each value may be either the vendor enum (GOOGLE_WORKSPACE) or the
     * friendly name returned by the read routes (Google Workspace).
     */
    vendors?: Array<'ANTHROPIC' | 'AWS' | 'BITBUCKET' | 'BOX' | 'CONFLUENCE' | 'DROPBOX' | 'GITHUB' | 'GOOGLE_CLOUD_PLATFORM' | 'GOOGLE_WORKSPACE' | 'JIRA' | 'MICROSOFT' | 'MICROSOFT_INTERNAL' | 'OPENAI' | 'SALESFORCE' | 'SERVICENOW' | 'SLACK' | 'ZOOM'>;
}
export interface FindingTypeGetParams {
    /**
     * Cloudflare account ID for the user making the request.
     */
    account_id: string;
}
export declare namespace FindingTypes {
    export { type FindingTypeListResponse as FindingTypeListResponse, type FindingTypeGetResponse as FindingTypeGetResponse, type FindingTypeListResponsesV4PagePaginationArray as FindingTypeListResponsesV4PagePaginationArray, type FindingTypeListParams as FindingTypeListParams, type FindingTypeGetParams as FindingTypeGetParams, };
    export { RemediationTypes as RemediationTypes, BaseRemediationTypes as BaseRemediationTypes, type RemediationTypeListResponse as RemediationTypeListResponse, type RemediationTypeListResponsesV4PagePaginationArray as RemediationTypeListResponsesV4PagePaginationArray, type RemediationTypeListParams as RemediationTypeListParams, };
}
//# sourceMappingURL=finding-types.d.mts.map