import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Access, Access$Outbound } from "./access.js";
import { ApprovalSettings, ApprovalSettings$Outbound } from "./approvalsettings.js";
import { Link, Link$Outbound } from "./link.js";
export type Environment = {
    /**
     * The location and content type of related resources
     */
    links: {
        [k: string]: Link;
    };
    /**
     * The ID for the environment. Use this as the client-side ID for authorization in some client-side SDKs, and to associate LaunchDarkly environments with CDN integrations in edge SDKs.
     */
    id: string;
    /**
     * A project-unique key for the new environment
     */
    key: string;
    /**
     * A human-friendly name for the new environment
     */
    name: string;
    /**
     * The SDK key for the environment. Use this for authorization in server-side SDKs.
     */
    apiKey: string;
    /**
     * The mobile key for the environment. Use this for authorization in mobile SDKs.
     */
    mobileKey: string;
    /**
     * The color used to indicate this environment in the UI
     */
    color: string;
    /**
     * The default time (in minutes) that the PHP SDK can cache feature flag rules locally
     */
    defaultTtl: number;
    /**
     * Ensures that one end user of the client-side SDK cannot inspect the variations for another end user
     */
    secureMode: boolean;
    access?: Access | undefined;
    /**
     * The initial value of trackEvents for flags created in this environment. Does not affect existing flags. Required for Data Export, but doesn't enable Data Export on its own.
     */
    defaultTrackEvents: boolean;
    /**
     * Whether members who modify flags and segments through the LaunchDarkly user interface are required to add a comment
     */
    requireComments: boolean;
    /**
     * Whether members who modify flags and segments through the LaunchDarkly user interface are required to confirm those changes
     */
    confirmChanges: boolean;
    /**
     * A list of tags for this environment
     */
    tags: Array<string>;
    approvalSettings?: ApprovalSettings | undefined;
    /**
     * Details about the approval settings for other resources in this environment, organized by resource kind (for example, "aiconfig" and "segment")
     */
    resourceApprovalSettings?: {
        [k: string]: ApprovalSettings;
    } | undefined;
    /**
     * Whether the environment is critical
     */
    critical: boolean;
};
/** @internal */
export declare const Environment$inboundSchema: z.ZodType<Environment, z.ZodTypeDef, unknown>;
/** @internal */
export type Environment$Outbound = {
    _links: {
        [k: string]: Link$Outbound;
    };
    _id: string;
    key: string;
    name: string;
    apiKey: string;
    mobileKey: string;
    color: string;
    defaultTtl: number;
    secureMode: boolean;
    _access?: Access$Outbound | undefined;
    defaultTrackEvents: boolean;
    requireComments: boolean;
    confirmChanges: boolean;
    tags: Array<string>;
    approvalSettings?: ApprovalSettings$Outbound | undefined;
    resourceApprovalSettings?: {
        [k: string]: ApprovalSettings$Outbound;
    } | undefined;
    critical: boolean;
};
/** @internal */
export declare const Environment$outboundSchema: z.ZodType<Environment$Outbound, z.ZodTypeDef, Environment>;
export declare function environmentToJSON(environment: Environment): string;
export declare function environmentFromJSON(jsonString: string): SafeParseResult<Environment, SDKValidationError>;
//# sourceMappingURL=environment.d.ts.map