import { APIResource } from "../../../../resource.js";
import * as Core from "../../../../core.js";
import * as CustomAPI from "./custom.js";
import * as ProfilesAPI from "./profiles.js";
export declare class Predefined extends APIResource {
    /**
     * Updates a DLP predefined profile. Only supports enabling/disabling entries.
     */
    update(profileId: string, params: PredefinedUpdateParams, options?: Core.RequestOptions): Core.APIPromise<ProfilesAPI.Profile>;
    /**
     * Fetches a predefined DLP profile by id.
     */
    get(profileId: string, params: PredefinedGetParams, options?: Core.RequestOptions): Core.APIPromise<ProfilesAPI.Profile>;
}
export interface PredefinedProfile {
    /**
     * The id of the predefined profile (uuid)
     */
    id: string;
    allowed_match_count: number;
    entries: Array<PredefinedProfile.CustomEntry | PredefinedProfile.PredefinedEntry | PredefinedProfile.IntegrationEntry | PredefinedProfile.ExactDataEntry | PredefinedProfile.WordListEntry>;
    /**
     * The name of the predefined profile
     */
    name: string;
    ai_context_enabled?: boolean;
    confidence_threshold?: 'low' | 'medium' | 'high' | 'very_high';
    /**
     * Scan the context of predefined entries to only return matches surrounded by
     * keywords.
     */
    context_awareness?: ProfilesAPI.ContextAwareness;
    ocr_enabled?: boolean;
    /**
     * Whether this profile can be accessed by anyone
     */
    open_access?: boolean;
}
export declare namespace PredefinedProfile {
    interface CustomEntry {
        id: string;
        created_at: string;
        enabled: boolean;
        name: string;
        pattern: CustomAPI.Pattern;
        type: 'custom';
        updated_at: string;
        profile_id?: string | null;
    }
    interface PredefinedEntry {
        id: string;
        confidence: PredefinedEntry.Confidence;
        enabled: boolean;
        name: string;
        type: 'predefined';
        profile_id?: string | null;
    }
    namespace PredefinedEntry {
        interface Confidence {
            /**
             * Indicates whether this entry has AI remote service validation
             */
            ai_context_available: boolean;
            /**
             * Indicates whether this entry has any form of validation that is not an AI remote
             * service
             */
            available: boolean;
        }
    }
    interface IntegrationEntry {
        id: string;
        created_at: string;
        enabled: boolean;
        name: string;
        type: 'integration';
        updated_at: string;
        profile_id?: string | null;
    }
    interface ExactDataEntry {
        id: string;
        created_at: string;
        enabled: boolean;
        name: string;
        secret: boolean;
        type: 'exact_data';
        updated_at: string;
    }
    interface WordListEntry {
        id: string;
        created_at: string;
        enabled: boolean;
        name: string;
        type: 'word_list';
        updated_at: string;
        word_list: unknown;
        profile_id?: string | null;
    }
}
export interface PredefinedUpdateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param:
     */
    entries: Array<PredefinedUpdateParams.Entry>;
    /**
     * Body param:
     */
    ai_context_enabled?: boolean;
    /**
     * Body param:
     */
    allowed_match_count?: number | null;
    /**
     * Body param:
     */
    confidence_threshold?: string | null;
    /**
     * Body param: Scan the context of predefined entries to only return matches
     * surrounded by keywords.
     */
    context_awareness?: ProfilesAPI.ContextAwarenessParam;
    /**
     * Body param:
     */
    ocr_enabled?: boolean;
}
export declare namespace PredefinedUpdateParams {
    interface Entry {
        id: string;
        enabled: boolean;
    }
}
export interface PredefinedGetParams {
    account_id: string;
}
export declare namespace Predefined {
    export { type PredefinedProfile as PredefinedProfile, type PredefinedUpdateParams as PredefinedUpdateParams, type PredefinedGetParams as PredefinedGetParams, };
}
//# sourceMappingURL=predefined.d.ts.map