import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type ApprovalSettings = {
    /**
     * If approvals are required for this environment
     */
    required: boolean;
    /**
     * Whether to skip approvals for pending changes
     */
    bypassApprovalsForPendingChanges: boolean;
    /**
     * Sets the amount of approvals required before a member can apply a change. The minimum is one and the maximum is five.
     */
    minNumApprovals: number;
    /**
     * Allow someone who makes an approval request to apply their own change
     */
    canReviewOwnRequest: boolean;
    /**
     * Allow applying the change as long as at least one person has approved
     */
    canApplyDeclinedChanges: boolean;
    /**
     * Automatically apply changes that have been approved by all reviewers. This field is only applicable for approval services other than LaunchDarkly.
     */
    autoApplyApprovedChanges?: boolean | undefined;
    /**
     * Which service to use for managing approvals
     */
    serviceKind: string;
    serviceConfig: {
        [k: string]: any;
    };
    /**
     * Require approval only on flags with the provided tags. Otherwise all flags will require approval.
     */
    requiredApprovalTags: Array<string>;
    /**
     * Optional field for integration configuration ID of a custom approval integration. This is an Enterprise-only feature.
     */
    serviceKindConfigurationId?: string | undefined;
};
/** @internal */
export declare const ApprovalSettings$inboundSchema: z.ZodType<ApprovalSettings, z.ZodTypeDef, unknown>;
/** @internal */
export type ApprovalSettings$Outbound = {
    required: boolean;
    bypassApprovalsForPendingChanges: boolean;
    minNumApprovals: number;
    canReviewOwnRequest: boolean;
    canApplyDeclinedChanges: boolean;
    autoApplyApprovedChanges?: boolean | undefined;
    serviceKind: string;
    serviceConfig: {
        [k: string]: any;
    };
    requiredApprovalTags: Array<string>;
    serviceKindConfigurationId?: string | undefined;
};
/** @internal */
export declare const ApprovalSettings$outboundSchema: z.ZodType<ApprovalSettings$Outbound, z.ZodTypeDef, ApprovalSettings>;
export declare function approvalSettingsToJSON(approvalSettings: ApprovalSettings): string;
export declare function approvalSettingsFromJSON(jsonString: string): SafeParseResult<ApprovalSettings, SDKValidationError>;
//# sourceMappingURL=approvalsettings.d.ts.map