UNPKG

@storybook/core

Version:

Storybook framework-agnostic API

1,166 lines (1,147 loc) • 51.6 kB
import { PackageJsonWithMaybeDeps, JsPackageManager, PackageJsonWithDepsAndDevDeps, PackageJson } from '@storybook/core/common'; import { SupportedFrameworks, SupportedRenderers as SupportedRenderers$1 } from '@storybook/core/types'; import * as semver from 'semver'; /** A list of all frameworks that are supported, but use a package outside the storybook monorepo */ type ExternalFramework = { name: SupportedFrameworks; packageName?: string; frameworks?: string[]; renderer?: string; }; declare const externalFrameworks: ExternalFramework[]; /** @deprecated Please use `SupportedRenderers` from `@storybook/types` instead */ type SupportedRenderers = SupportedRenderers$1; declare const SUPPORTED_RENDERERS: SupportedRenderers[]; declare enum ProjectType { UNDETECTED = "UNDETECTED", UNSUPPORTED = "UNSUPPORTED", REACT = "REACT", REACT_SCRIPTS = "REACT_SCRIPTS", REACT_NATIVE = "REACT_NATIVE", REACT_NATIVE_WEB = "REACT_NATIVE_WEB", REACT_PROJECT = "REACT_PROJECT", WEBPACK_REACT = "WEBPACK_REACT", NEXTJS = "NEXTJS", VUE3 = "VUE3", NUXT = "NUXT", ANGULAR = "ANGULAR", EMBER = "EMBER", WEB_COMPONENTS = "WEB_COMPONENTS", HTML = "HTML", QWIK = "QWIK", PREACT = "PREACT", SVELTE = "SVELTE", SVELTEKIT = "SVELTEKIT", SERVER = "SERVER", NX = "NX", SOLID = "SOLID" } declare enum CoreBuilder { Webpack5 = "webpack5", Vite = "vite" } declare enum CoreWebpackCompilers { Babel = "babel", SWC = "swc" } declare enum CommunityBuilder { Rsbuild = "rsbuild" } declare const compilerNameToCoreCompiler: Record<string, CoreWebpackCompilers>; declare const builderNameToCoreBuilder: Record<string, CoreBuilder>; type Builder = CoreBuilder | (string & {}); declare enum SupportedLanguage { JAVASCRIPT = "javascript", TYPESCRIPT_3_8 = "typescript-3-8", TYPESCRIPT_4_9 = "typescript-4-9" } type TemplateMatcher = { files?: boolean[]; dependencies?: boolean[]; peerDependencies?: boolean[]; }; type TemplateConfiguration = { preset: ProjectType; /** Will be checked both against dependencies and devDependencies */ dependencies?: string[] | { [dependency: string]: (version: string) => boolean; }; peerDependencies?: string[] | { [dependency: string]: (version: string) => boolean; }; files?: string[]; matcherFunction: (matcher: TemplateMatcher) => boolean; }; /** * Configuration to match a storybook preset template. * * This has to be an array sorted in order of specificity/priority. Reason: both REACT and * WEBPACK_REACT have react as dependency, therefore WEBPACK_REACT has to come first, as it's more * specific. */ declare const supportedTemplates: TemplateConfiguration[]; declare const unsupportedTemplate: TemplateConfiguration; declare const installableProjectTypes: string[]; declare function detectFrameworkPreset(packageJson?: PackageJsonWithMaybeDeps): ProjectType | null; /** * Attempts to detect which builder to use, by searching for a vite config file or webpack * installation. If neither are found it will choose the default builder based on the project type. * * @returns CoreBuilder */ declare function detectBuilder(packageManager: JsPackageManager, projectType: ProjectType): Promise<any>; declare function isStorybookInstantiated(configDir?: string): boolean; declare function detectPnp(): Promise<boolean>; declare function detectLanguage(packageManager: JsPackageManager): Promise<SupportedLanguage>; declare function detect(packageManager: JsPackageManager, options?: { force?: boolean; html?: boolean; }): Promise<ProjectType | null>; declare function readFileAsJson(jsonPath: string, allowComments?: boolean): any; declare const writeFileAsJson: (jsonPath: string, content: unknown) => boolean; /** * Detect if any babel dependencies need to be added to the project This is currently used by * react-native generator * * @example * * ```ts * const babelDependencies = await getBabelDependencies( * packageManager, * npmOptions, * packageJson * ); // you can then spread the result when using installDependencies * installDependencies(npmOptions, [ * `@storybook/react@${storybookVersion}`, * ...babelDependencies, * ]); * ``` * * @param {Object} packageJson The current package.json so we can inspect its contents * @returns {Array} Contains the packages and versions that need to be installed */ declare function getBabelDependencies(packageManager: JsPackageManager, packageJson: PackageJsonWithDepsAndDevDeps): Promise<string[]>; declare function addToDevDependenciesIfNotPresent(packageJson: PackageJson, name: string, packageVersion: string): void; declare function copyTemplate(templateRoot: string, destination?: string): void; type CopyTemplateFilesOptions = { packageManager: JsPackageManager; renderer: SupportedFrameworks | SupportedRenderers$1; language: SupportedLanguage; commonAssetsDir?: string; destination?: string; features: string[]; }; /** @deprecated Please use `frameworkToRenderer` from `@storybook/core-common` instead */ declare const frameworkToRenderer: Record<"angular" | "ember" | "experimental-nextjs-vite" | "html-vite" | "html-webpack5" | "nextjs" | "preact-vite" | "preact-webpack5" | "react-native-web-vite" | "react-vite" | "react-webpack5" | "server-webpack5" | "svelte-vite" | "svelte-webpack5" | "sveltekit" | "vue3-vite" | "vue3-webpack5" | "web-components-vite" | "web-components-webpack5" | "qwik" | "solid" | "nuxt" | "react-rsbuild" | "vue3-rsbuild" | "react" | "react-native" | "vue3" | "preact" | "svelte" | "html" | "web-components" | "server", SupportedRenderers$1 | "vue">; declare const frameworkToDefaultBuilder: Record<SupportedFrameworks, CoreBuilder | CommunityBuilder>; /** * Return the installed version of a package, or the coerced version specifier from package.json if * it's a dependency but not installed (e.g. in a fresh project) */ declare function getVersionSafe(packageManager: JsPackageManager, packageName: string): Promise<string | undefined>; declare const cliStoriesTargetPath: () => Promise<"./src/stories" | "./stories">; declare function copyTemplateFiles({ packageManager, renderer, language, destination, commonAssetsDir, features, }: CopyTemplateFilesOptions): Promise<void>; declare function adjustTemplate(templatePath: string, templateData: Record<string, any>): Promise<void>; declare function getStorybookVersionSpecifier(packageJson: PackageJsonWithDepsAndDevDeps): string | undefined; declare function isNxProject(): Promise<string | undefined>; declare function coerceSemver(version: string): semver.SemVer; declare function hasStorybookDependencies(packageManager: JsPackageManager): Promise<boolean>; declare const ANGULAR_JSON_PATH = "angular.json"; declare const compoDocPreviewPrefix: string; declare const promptForCompoDocs: () => Promise<boolean>; declare class AngularJSON { json: { projects: Record<string, { root: string; projectType: string; architect: Record<string, any>; }>; }; constructor(); get projects(): Record<string, { root: string; projectType: string; architect: Record<string, any>; }>; get projectsWithoutStorybook(): string[]; get hasStorybookBuilder(): boolean; get rootProject(): { root: string; projectType: string; architect: Record<string, any>; } | null; getProjectSettingsByName(projectName: string): { root: string; projectType: string; architect: Record<string, any>; }; getProjectName(): Promise<any>; addStorybookEntries({ angularProjectName, storybookFolder, useCompodoc, root, }: { angularProjectName: string; storybookFolder: string; useCompodoc: boolean; root: string; }): void; write(): void; } declare function getRendererDir(packageManager: JsPackageManager, renderer: SupportedFrameworks | SupportedRenderers): Promise<string>; type NpmOptions = { skipInstall?: boolean; installAsDevDependencies?: boolean; }; declare const SUPPORTED_ESLINT_EXTENSIONS: string[]; declare const findEslintFile: () => string | null; declare function extractEslintInfo(packageManager: JsPackageManager): Promise<{ hasEslint: boolean; isStorybookPluginInstalled: boolean; eslintConfigFile: string | null; }>; declare const normalizeExtends: (existingExtends: any) => string[]; declare function configureEslintPlugin(eslintFile: string | undefined, packageManager: JsPackageManager): Promise<void>; declare const suggestESLintPlugin: () => Promise<boolean>; type Primitive = string | number | symbol | bigint | boolean | null | undefined; declare namespace util { type AssertEqual<T, U> = (<V>() => V extends T ? 1 : 2) extends <V>() => V extends U ? 1 : 2 ? true : false; export type isAny<T> = 0 extends 1 & T ? true : false; export const assertEqual: <A, B>(val: AssertEqual<A, B>) => AssertEqual<A, B>; export function assertIs<T>(_arg: T): void; export function assertNever(_x: never): never; export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; export type OmitKeys<T, K extends string> = Pick<T, Exclude<keyof T, K>>; export type MakePartial<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>; export type Exactly<T, X> = T & Record<Exclude<keyof X, keyof T>, never>; export const arrayToEnum: <T extends string, U extends [T, ...T[]]>(items: U) => { [k in U[number]]: k; }; export const getValidEnumValues: (obj: any) => any[]; export const objectValues: (obj: any) => any[]; export const objectKeys: ObjectConstructor["keys"]; export const find: <T>(arr: T[], checker: (arg: T) => any) => T | undefined; export type identity<T> = objectUtil.identity<T>; export type flatten<T> = objectUtil.flatten<T>; export type noUndefined<T> = T extends undefined ? never : T; export const isInteger: NumberConstructor["isInteger"]; export function joinValues<T extends any[]>(array: T, separator?: string): string; export const jsonStringifyReplacer: (_: string, value: any) => any; export { }; } declare namespace objectUtil { export type MergeShapes<U, V> = { [k in Exclude<keyof U, keyof V>]: U[k]; } & V; type optionalKeys<T extends object> = { [k in keyof T]: undefined extends T[k] ? k : never; }[keyof T]; type requiredKeys<T extends object> = { [k in keyof T]: undefined extends T[k] ? never : k; }[keyof T]; export type addQuestionMarks<T extends object, _O = any> = { [K in requiredKeys<T>]: T[K]; } & { [K in optionalKeys<T>]?: T[K]; } & { [k in keyof T]?: unknown; }; export type identity<T> = T; export type flatten<T> = identity<{ [k in keyof T]: T[k]; }>; export type noNeverKeys<T> = { [k in keyof T]: [T[k]] extends [never] ? never : k; }[keyof T]; export type noNever<T> = identity<{ [k in noNeverKeys<T>]: k extends keyof T ? T[k] : never; }>; export const mergeShapes: <U, T>(first: U, second: T) => T & U; export type extendShape<A extends object, B extends object> = { [K in keyof A as K extends keyof B ? never : K]: A[K]; } & { [K in keyof B]: B[K]; }; export { }; } declare const ZodParsedType: { string: "string"; number: "number"; bigint: "bigint"; boolean: "boolean"; symbol: "symbol"; undefined: "undefined"; object: "object"; function: "function"; map: "map"; nan: "nan"; integer: "integer"; float: "float"; date: "date"; null: "null"; array: "array"; unknown: "unknown"; promise: "promise"; void: "void"; never: "never"; set: "set"; }; type ZodParsedType = keyof typeof ZodParsedType; type allKeys<T> = T extends any ? keyof T : never; type typeToFlattenedError<T, U = string> = { formErrors: U[]; fieldErrors: { [P in allKeys<T>]?: U[]; }; }; declare const ZodIssueCode: { invalid_type: "invalid_type"; invalid_literal: "invalid_literal"; custom: "custom"; invalid_union: "invalid_union"; invalid_union_discriminator: "invalid_union_discriminator"; invalid_enum_value: "invalid_enum_value"; unrecognized_keys: "unrecognized_keys"; invalid_arguments: "invalid_arguments"; invalid_return_type: "invalid_return_type"; invalid_date: "invalid_date"; invalid_string: "invalid_string"; too_small: "too_small"; too_big: "too_big"; invalid_intersection_types: "invalid_intersection_types"; not_multiple_of: "not_multiple_of"; not_finite: "not_finite"; }; type ZodIssueCode = keyof typeof ZodIssueCode; type ZodIssueBase = { path: (string | number)[]; message?: string; }; interface ZodInvalidTypeIssue extends ZodIssueBase { code: typeof ZodIssueCode.invalid_type; expected: ZodParsedType; received: ZodParsedType; } interface ZodInvalidLiteralIssue extends ZodIssueBase { code: typeof ZodIssueCode.invalid_literal; expected: unknown; received: unknown; } interface ZodUnrecognizedKeysIssue extends ZodIssueBase { code: typeof ZodIssueCode.unrecognized_keys; keys: string[]; } interface ZodInvalidUnionIssue extends ZodIssueBase { code: typeof ZodIssueCode.invalid_union; unionErrors: ZodError[]; } interface ZodInvalidUnionDiscriminatorIssue extends ZodIssueBase { code: typeof ZodIssueCode.invalid_union_discriminator; options: Primitive[]; } interface ZodInvalidEnumValueIssue extends ZodIssueBase { received: string | number; code: typeof ZodIssueCode.invalid_enum_value; options: (string | number)[]; } interface ZodInvalidArgumentsIssue extends ZodIssueBase { code: typeof ZodIssueCode.invalid_arguments; argumentsError: ZodError; } interface ZodInvalidReturnTypeIssue extends ZodIssueBase { code: typeof ZodIssueCode.invalid_return_type; returnTypeError: ZodError; } interface ZodInvalidDateIssue extends ZodIssueBase { code: typeof ZodIssueCode.invalid_date; } type StringValidation = "email" | "url" | "emoji" | "uuid" | "nanoid" | "regex" | "cuid" | "cuid2" | "ulid" | "datetime" | "date" | "time" | "duration" | "ip" | "cidr" | "base64" | "jwt" | "base64url" | { includes: string; position?: number; } | { startsWith: string; } | { endsWith: string; }; interface ZodInvalidStringIssue extends ZodIssueBase { code: typeof ZodIssueCode.invalid_string; validation: StringValidation; } interface ZodTooSmallIssue extends ZodIssueBase { code: typeof ZodIssueCode.too_small; minimum: number | bigint; inclusive: boolean; exact?: boolean; type: "array" | "string" | "number" | "set" | "date" | "bigint"; } interface ZodTooBigIssue extends ZodIssueBase { code: typeof ZodIssueCode.too_big; maximum: number | bigint; inclusive: boolean; exact?: boolean; type: "array" | "string" | "number" | "set" | "date" | "bigint"; } interface ZodInvalidIntersectionTypesIssue extends ZodIssueBase { code: typeof ZodIssueCode.invalid_intersection_types; } interface ZodNotMultipleOfIssue extends ZodIssueBase { code: typeof ZodIssueCode.not_multiple_of; multipleOf: number | bigint; } interface ZodNotFiniteIssue extends ZodIssueBase { code: typeof ZodIssueCode.not_finite; } interface ZodCustomIssue extends ZodIssueBase { code: typeof ZodIssueCode.custom; params?: { [k: string]: any; }; } type ZodIssueOptionalMessage = ZodInvalidTypeIssue | ZodInvalidLiteralIssue | ZodUnrecognizedKeysIssue | ZodInvalidUnionIssue | ZodInvalidUnionDiscriminatorIssue | ZodInvalidEnumValueIssue | ZodInvalidArgumentsIssue | ZodInvalidReturnTypeIssue | ZodInvalidDateIssue | ZodInvalidStringIssue | ZodTooSmallIssue | ZodTooBigIssue | ZodInvalidIntersectionTypesIssue | ZodNotMultipleOfIssue | ZodNotFiniteIssue | ZodCustomIssue; type ZodIssue = ZodIssueOptionalMessage & { fatal?: boolean; message: string; }; type recursiveZodFormattedError<T> = T extends [any, ...any[]] ? { [K in keyof T]?: ZodFormattedError<T[K]>; } : T extends any[] ? { [k: number]: ZodFormattedError<T[number]>; } : T extends object ? { [K in keyof T]?: ZodFormattedError<T[K]>; } : unknown; type ZodFormattedError<T, U = string> = { _errors: U[]; } & recursiveZodFormattedError<NonNullable<T>>; declare class ZodError<T = any> extends Error { issues: ZodIssue[]; get errors(): ZodIssue[]; constructor(issues: ZodIssue[]); format(): ZodFormattedError<T>; format<U>(mapper: (issue: ZodIssue) => U): ZodFormattedError<T, U>; static create: (issues: ZodIssue[]) => ZodError<any>; static assert(value: unknown): asserts value is ZodError; toString(): string; get message(): string; get isEmpty(): boolean; addIssue: (sub: ZodIssue) => void; addIssues: (subs?: ZodIssue[]) => void; flatten(): typeToFlattenedError<T>; flatten<U>(mapper?: (issue: ZodIssue) => U): typeToFlattenedError<T, U>; get formErrors(): typeToFlattenedError<T, string>; } type stripPath<T extends object> = T extends any ? util.OmitKeys<T, "path"> : never; type IssueData = stripPath<ZodIssueOptionalMessage> & { path?: (string | number)[]; fatal?: boolean; }; type ErrorMapCtx = { defaultError: string; data: any; }; type ZodErrorMap = (issue: ZodIssueOptionalMessage, _ctx: ErrorMapCtx) => { message: string; }; type ParseParams = { path: (string | number)[]; errorMap: ZodErrorMap; async: boolean; }; type ParsePathComponent = string | number; type ParsePath = ParsePathComponent[]; interface ParseContext { readonly common: { readonly issues: ZodIssue[]; readonly contextualErrorMap?: ZodErrorMap; readonly async: boolean; }; readonly path: ParsePath; readonly schemaErrorMap?: ZodErrorMap; readonly parent: ParseContext | null; readonly data: any; readonly parsedType: ZodParsedType; } type ParseInput = { data: any; path: (string | number)[]; parent: ParseContext; }; declare class ParseStatus { value: "aborted" | "dirty" | "valid"; dirty(): void; abort(): void; static mergeArray(status: ParseStatus, results: SyncParseReturnType<any>[]): SyncParseReturnType; static mergeObjectAsync(status: ParseStatus, pairs: { key: ParseReturnType<any>; value: ParseReturnType<any>; }[]): Promise<SyncParseReturnType<any>>; static mergeObjectSync(status: ParseStatus, pairs: { key: SyncParseReturnType<any>; value: SyncParseReturnType<any>; alwaysSet?: boolean; }[]): SyncParseReturnType; } type INVALID = { status: "aborted"; }; declare const INVALID: INVALID; type DIRTY<T> = { status: "dirty"; value: T; }; declare const DIRTY: <T>(value: T) => DIRTY<T>; type OK<T> = { status: "valid"; value: T; }; declare const OK: <T>(value: T) => OK<T>; type SyncParseReturnType<T = any> = OK<T> | DIRTY<T> | INVALID; type AsyncParseReturnType<T> = Promise<SyncParseReturnType<T>>; type ParseReturnType<T> = SyncParseReturnType<T> | AsyncParseReturnType<T>; declare namespace enumUtil { type UnionToIntersectionFn<T> = (T extends unknown ? (k: () => T) => void : never) extends (k: infer Intersection) => void ? Intersection : never; type GetUnionLast<T> = UnionToIntersectionFn<T> extends () => infer Last ? Last : never; type UnionToTuple<T, Tuple extends unknown[] = []> = [T] extends [never] ? Tuple : UnionToTuple<Exclude<T, GetUnionLast<T>>, [GetUnionLast<T>, ...Tuple]>; type CastToStringTuple<T> = T extends [string, ...string[]] ? T : never; export type UnionToTupleString<T> = CastToStringTuple<UnionToTuple<T>>; export { }; } declare namespace errorUtil { type ErrMessage = string | { message?: string; }; const errToObj: (message?: ErrMessage) => { message?: string | undefined; }; const toString: (message?: ErrMessage) => string | undefined; } declare namespace partialUtil { type DeepPartial<T extends ZodTypeAny> = T extends ZodObject<ZodRawShape> ? ZodObject<{ [k in keyof T["shape"]]: ZodOptional<DeepPartial<T["shape"][k]>>; }, T["_def"]["unknownKeys"], T["_def"]["catchall"]> : T extends ZodArray<infer Type, infer Card> ? ZodArray<DeepPartial<Type>, Card> : T extends ZodOptional<infer Type> ? ZodOptional<DeepPartial<Type>> : T extends ZodNullable<infer Type> ? ZodNullable<DeepPartial<Type>> : T extends ZodTuple<infer Items> ? { [k in keyof Items]: Items[k] extends ZodTypeAny ? DeepPartial<Items[k]> : never; } extends infer PI ? PI extends ZodTupleItems ? ZodTuple<PI> : never : never : T; } /** * The Standard Schema interface. */ type StandardSchemaV1<Input = unknown, Output = Input> = { /** * The Standard Schema properties. */ readonly "~standard": StandardSchemaV1.Props<Input, Output>; }; declare namespace StandardSchemaV1 { /** * The Standard Schema properties interface. */ export interface Props<Input = unknown, Output = Input> { /** * The version number of the standard. */ readonly version: 1; /** * The vendor name of the schema library. */ readonly vendor: string; /** * Validates unknown input values. */ readonly validate: (value: unknown) => Result<Output> | Promise<Result<Output>>; /** * Inferred types associated with the schema. */ readonly types?: Types<Input, Output> | undefined; } /** * The result interface of the validate function. */ export type Result<Output> = SuccessResult<Output> | FailureResult; /** * The result interface if validation succeeds. */ export interface SuccessResult<Output> { /** * The typed output value. */ readonly value: Output; /** * The non-existent issues. */ readonly issues?: undefined; } /** * The result interface if validation fails. */ export interface FailureResult { /** * The issues of failed validation. */ readonly issues: ReadonlyArray<Issue>; } /** * The issue interface of the failure output. */ export interface Issue { /** * The error message of the issue. */ readonly message: string; /** * The path of the issue, if any. */ readonly path?: ReadonlyArray<PropertyKey | PathSegment> | undefined; } /** * The path segment interface of the issue. */ export interface PathSegment { /** * The key representing a path segment. */ readonly key: PropertyKey; } /** * The Standard Schema types interface. */ export interface Types<Input = unknown, Output = Input> { /** * The input type of the schema. */ readonly input: Input; /** * The output type of the schema. */ readonly output: Output; } /** * Infers the input type of a Standard Schema. */ export type InferInput<Schema extends StandardSchemaV1> = NonNullable<Schema["~standard"]["types"]>["input"]; /** * Infers the output type of a Standard Schema. */ export type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema["~standard"]["types"]>["output"]; export { }; } interface RefinementCtx { addIssue: (arg: IssueData) => void; path: (string | number)[]; } type ZodRawShape = { [k: string]: ZodTypeAny; }; type ZodTypeAny = ZodType<any, any, any>; type TypeOf<T extends ZodType<any, any, any>> = T["_output"]; type input<T extends ZodType<any, any, any>> = T["_input"]; type output<T extends ZodType<any, any, any>> = T["_output"]; type CustomErrorParams = Partial<util.Omit<ZodCustomIssue, "code">>; interface ZodTypeDef { errorMap?: ZodErrorMap; description?: string; } type RawCreateParams = { errorMap?: ZodErrorMap; invalid_type_error?: string; required_error?: string; message?: string; description?: string; } | undefined; type SafeParseSuccess<Output> = { success: true; data: Output; error?: never; }; type SafeParseError<Input> = { success: false; error: ZodError<Input>; data?: never; }; type SafeParseReturnType<Input, Output> = SafeParseSuccess<Output> | SafeParseError<Input>; declare abstract class ZodType<Output = any, Def extends ZodTypeDef = ZodTypeDef, Input = Output> { readonly _type: Output; readonly _output: Output; readonly _input: Input; readonly _def: Def; get description(): string | undefined; "~standard": StandardSchemaV1.Props<Input, Output>; abstract _parse(input: ParseInput): ParseReturnType<Output>; _getType(input: ParseInput): string; _getOrReturnCtx(input: ParseInput, ctx?: ParseContext | undefined): ParseContext; _processInputParams(input: ParseInput): { status: ParseStatus; ctx: ParseContext; }; _parseSync(input: ParseInput): SyncParseReturnType<Output>; _parseAsync(input: ParseInput): AsyncParseReturnType<Output>; parse(data: unknown, params?: Partial<ParseParams>): Output; safeParse(data: unknown, params?: Partial<ParseParams>): SafeParseReturnType<Input, Output>; "~validate"(data: unknown): StandardSchemaV1.Result<Output> | Promise<StandardSchemaV1.Result<Output>>; parseAsync(data: unknown, params?: Partial<ParseParams>): Promise<Output>; safeParseAsync(data: unknown, params?: Partial<ParseParams>): Promise<SafeParseReturnType<Input, Output>>; /** Alias of safeParseAsync */ spa: (data: unknown, params?: Partial<ParseParams>) => Promise<SafeParseReturnType<Input, Output>>; refine<RefinedOutput extends Output>(check: (arg: Output) => arg is RefinedOutput, message?: string | CustomErrorParams | ((arg: Output) => CustomErrorParams)): ZodEffects<this, RefinedOutput, Input>; refine(check: (arg: Output) => unknown | Promise<unknown>, message?: string | CustomErrorParams | ((arg: Output) => CustomErrorParams)): ZodEffects<this, Output, Input>; refinement<RefinedOutput extends Output>(check: (arg: Output) => arg is RefinedOutput, refinementData: IssueData | ((arg: Output, ctx: RefinementCtx) => IssueData)): ZodEffects<this, RefinedOutput, Input>; refinement(check: (arg: Output) => boolean, refinementData: IssueData | ((arg: Output, ctx: RefinementCtx) => IssueData)): ZodEffects<this, Output, Input>; _refinement(refinement: RefinementEffect<Output>["refinement"]): ZodEffects<this, Output, Input>; superRefine<RefinedOutput extends Output>(refinement: (arg: Output, ctx: RefinementCtx) => arg is RefinedOutput): ZodEffects<this, RefinedOutput, Input>; superRefine(refinement: (arg: Output, ctx: RefinementCtx) => void): ZodEffects<this, Output, Input>; superRefine(refinement: (arg: Output, ctx: RefinementCtx) => Promise<void>): ZodEffects<this, Output, Input>; constructor(def: Def); optional(): ZodOptional<this>; nullable(): ZodNullable<this>; nullish(): ZodOptional<ZodNullable<this>>; array(): ZodArray<this>; promise(): ZodPromise<this>; or<T extends ZodTypeAny>(option: T): ZodUnion<[this, T]>; and<T extends ZodTypeAny>(incoming: T): ZodIntersection<this, T>; transform<NewOut>(transform: (arg: Output, ctx: RefinementCtx) => NewOut | Promise<NewOut>): ZodEffects<this, NewOut>; default(def: util.noUndefined<Input>): ZodDefault<this>; default(def: () => util.noUndefined<Input>): ZodDefault<this>; brand<B extends string | number | symbol>(brand?: B): ZodBranded<this, B>; catch(def: Output): ZodCatch<this>; catch(def: (ctx: { error: ZodError; input: Input; }) => Output): ZodCatch<this>; describe(description: string): this; pipe<T extends ZodTypeAny>(target: T): ZodPipeline<this, T>; readonly(): ZodReadonly<this>; isOptional(): boolean; isNullable(): boolean; } type ZodNumberCheck = { kind: "min"; value: number; inclusive: boolean; message?: string; } | { kind: "max"; value: number; inclusive: boolean; message?: string; } | { kind: "int"; message?: string; } | { kind: "multipleOf"; value: number; message?: string; } | { kind: "finite"; message?: string; }; interface ZodNumberDef extends ZodTypeDef { checks: ZodNumberCheck[]; typeName: ZodFirstPartyTypeKind.ZodNumber; coerce: boolean; } declare class ZodNumber extends ZodType<number, ZodNumberDef, number> { _parse(input: ParseInput): ParseReturnType<number>; static create: (params?: RawCreateParams & { coerce?: boolean; }) => ZodNumber; gte(value: number, message?: errorUtil.ErrMessage): ZodNumber; min: (value: number, message?: errorUtil.ErrMessage) => ZodNumber; gt(value: number, message?: errorUtil.ErrMessage): ZodNumber; lte(value: number, message?: errorUtil.ErrMessage): ZodNumber; max: (value: number, message?: errorUtil.ErrMessage) => ZodNumber; lt(value: number, message?: errorUtil.ErrMessage): ZodNumber; protected setLimit(kind: "min" | "max", value: number, inclusive: boolean, message?: string): ZodNumber; _addCheck(check: ZodNumberCheck): ZodNumber; int(message?: errorUtil.ErrMessage): ZodNumber; positive(message?: errorUtil.ErrMessage): ZodNumber; negative(message?: errorUtil.ErrMessage): ZodNumber; nonpositive(message?: errorUtil.ErrMessage): ZodNumber; nonnegative(message?: errorUtil.ErrMessage): ZodNumber; multipleOf(value: number, message?: errorUtil.ErrMessage): ZodNumber; step: (value: number, message?: errorUtil.ErrMessage) => ZodNumber; finite(message?: errorUtil.ErrMessage): ZodNumber; safe(message?: errorUtil.ErrMessage): ZodNumber; get minValue(): number | null; get maxValue(): number | null; get isInt(): boolean; get isFinite(): boolean; } interface ZodBooleanDef extends ZodTypeDef { typeName: ZodFirstPartyTypeKind.ZodBoolean; coerce: boolean; } declare class ZodBoolean extends ZodType<boolean, ZodBooleanDef, boolean> { _parse(input: ParseInput): ParseReturnType<boolean>; static create: (params?: RawCreateParams & { coerce?: boolean; }) => ZodBoolean; } interface ZodArrayDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef { type: T; typeName: ZodFirstPartyTypeKind.ZodArray; exactLength: { value: number; message?: string; } | null; minLength: { value: number; message?: string; } | null; maxLength: { value: number; message?: string; } | null; } type ArrayCardinality = "many" | "atleastone"; type arrayOutputType<T extends ZodTypeAny, Cardinality extends ArrayCardinality = "many"> = Cardinality extends "atleastone" ? [T["_output"], ...T["_output"][]] : T["_output"][]; declare class ZodArray<T extends ZodTypeAny, Cardinality extends ArrayCardinality = "many"> extends ZodType<arrayOutputType<T, Cardinality>, ZodArrayDef<T>, Cardinality extends "atleastone" ? [T["_input"], ...T["_input"][]] : T["_input"][]> { _parse(input: ParseInput): ParseReturnType<this["_output"]>; get element(): T; min(minLength: number, message?: errorUtil.ErrMessage): this; max(maxLength: number, message?: errorUtil.ErrMessage): this; length(len: number, message?: errorUtil.ErrMessage): this; nonempty(message?: errorUtil.ErrMessage): ZodArray<T, "atleastone">; static create: <T_1 extends ZodTypeAny>(schema: T_1, params?: RawCreateParams) => ZodArray<T_1, "many">; } type UnknownKeysParam = "passthrough" | "strict" | "strip"; interface ZodObjectDef<T extends ZodRawShape = ZodRawShape, UnknownKeys extends UnknownKeysParam = UnknownKeysParam, Catchall extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef { typeName: ZodFirstPartyTypeKind.ZodObject; shape: () => T; catchall: Catchall; unknownKeys: UnknownKeys; } type objectOutputType<Shape extends ZodRawShape, Catchall extends ZodTypeAny, UnknownKeys extends UnknownKeysParam = UnknownKeysParam> = objectUtil.flatten<objectUtil.addQuestionMarks<baseObjectOutputType<Shape>>> & CatchallOutput<Catchall> & PassthroughType<UnknownKeys>; type baseObjectOutputType<Shape extends ZodRawShape> = { [k in keyof Shape]: Shape[k]["_output"]; }; type objectInputType<Shape extends ZodRawShape, Catchall extends ZodTypeAny, UnknownKeys extends UnknownKeysParam = UnknownKeysParam> = objectUtil.flatten<baseObjectInputType<Shape>> & CatchallInput<Catchall> & PassthroughType<UnknownKeys>; type baseObjectInputType<Shape extends ZodRawShape> = objectUtil.addQuestionMarks<{ [k in keyof Shape]: Shape[k]["_input"]; }>; type CatchallOutput<T extends ZodType> = ZodType extends T ? unknown : { [k: string]: T["_output"]; }; type CatchallInput<T extends ZodType> = ZodType extends T ? unknown : { [k: string]: T["_input"]; }; type PassthroughType<T extends UnknownKeysParam> = T extends "passthrough" ? { [k: string]: unknown; } : unknown; type deoptional<T extends ZodTypeAny> = T extends ZodOptional<infer U> ? deoptional<U> : T extends ZodNullable<infer U> ? ZodNullable<deoptional<U>> : T; declare class ZodObject<T extends ZodRawShape, UnknownKeys extends UnknownKeysParam = UnknownKeysParam, Catchall extends ZodTypeAny = ZodTypeAny, Output = objectOutputType<T, Catchall, UnknownKeys>, Input = objectInputType<T, Catchall, UnknownKeys>> extends ZodType<Output, ZodObjectDef<T, UnknownKeys, Catchall>, Input> { private _cached; _getCached(): { shape: T; keys: string[]; }; _parse(input: ParseInput): ParseReturnType<this["_output"]>; get shape(): T; strict(message?: errorUtil.ErrMessage): ZodObject<T, "strict", Catchall>; strip(): ZodObject<T, "strip", Catchall>; passthrough(): ZodObject<T, "passthrough", Catchall>; /** * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped. * If you want to pass through unknown properties, use `.passthrough()` instead. */ nonstrict: () => ZodObject<T, "passthrough", Catchall>; extend<Augmentation extends ZodRawShape>(augmentation: Augmentation): ZodObject<objectUtil.extendShape<T, Augmentation>, UnknownKeys, Catchall>; /** * @deprecated Use `.extend` instead * */ augment: <Augmentation extends ZodRawShape>(augmentation: Augmentation) => ZodObject<objectUtil.extendShape<T, Augmentation>, UnknownKeys, Catchall>; /** * Prior to zod@1.0.12 there was a bug in the * inferred type of merged objects. Please * upgrade if you are experiencing issues. */ merge<Incoming extends AnyZodObject, Augmentation extends Incoming["shape"]>(merging: Incoming): ZodObject<objectUtil.extendShape<T, Augmentation>, Incoming["_def"]["unknownKeys"], Incoming["_def"]["catchall"]>; setKey<Key extends string, Schema extends ZodTypeAny>(key: Key, schema: Schema): ZodObject<T & { [k in Key]: Schema; }, UnknownKeys, Catchall>; catchall<Index extends ZodTypeAny>(index: Index): ZodObject<T, UnknownKeys, Index>; pick<Mask extends util.Exactly<{ [k in keyof T]?: true; }, Mask>>(mask: Mask): ZodObject<Pick<T, Extract<keyof T, keyof Mask>>, UnknownKeys, Catchall>; omit<Mask extends util.Exactly<{ [k in keyof T]?: true; }, Mask>>(mask: Mask): ZodObject<Omit<T, keyof Mask>, UnknownKeys, Catchall>; /** * @deprecated */ deepPartial(): partialUtil.DeepPartial<this>; partial(): ZodObject<{ [k in keyof T]: ZodOptional<T[k]>; }, UnknownKeys, Catchall>; partial<Mask extends util.Exactly<{ [k in keyof T]?: true; }, Mask>>(mask: Mask): ZodObject<objectUtil.noNever<{ [k in keyof T]: k extends keyof Mask ? ZodOptional<T[k]> : T[k]; }>, UnknownKeys, Catchall>; required(): ZodObject<{ [k in keyof T]: deoptional<T[k]>; }, UnknownKeys, Catchall>; required<Mask extends util.Exactly<{ [k in keyof T]?: true; }, Mask>>(mask: Mask): ZodObject<objectUtil.noNever<{ [k in keyof T]: k extends keyof Mask ? deoptional<T[k]> : T[k]; }>, UnknownKeys, Catchall>; keyof(): ZodEnum<enumUtil.UnionToTupleString<keyof T>>; static create: <T_1 extends ZodRawShape>(shape: T_1, params?: RawCreateParams) => ZodObject<T_1, "strip", ZodTypeAny, objectUtil.addQuestionMarks<baseObjectOutputType<T_1>, any> extends infer T_2 ? { [k in keyof T_2]: objectUtil.addQuestionMarks<baseObjectOutputType<T_1>, any>[k]; } : never, baseObjectInputType<T_1> extends infer T_3 ? { [k_1 in keyof T_3]: baseObjectInputType<T_1>[k_1]; } : never>; static strictCreate: <T_1 extends ZodRawShape>(shape: T_1, params?: RawCreateParams) => ZodObject<T_1, "strict", ZodTypeAny, objectUtil.addQuestionMarks<baseObjectOutputType<T_1>, any> extends infer T_2 ? { [k in keyof T_2]: objectUtil.addQuestionMarks<baseObjectOutputType<T_1>, any>[k]; } : never, baseObjectInputType<T_1> extends infer T_3 ? { [k_1 in keyof T_3]: baseObjectInputType<T_1>[k_1]; } : never>; static lazycreate: <T_1 extends ZodRawShape>(shape: () => T_1, params?: RawCreateParams) => ZodObject<T_1, "strip", ZodTypeAny, objectUtil.addQuestionMarks<baseObjectOutputType<T_1>, any> extends infer T_2 ? { [k in keyof T_2]: objectUtil.addQuestionMarks<baseObjectOutputType<T_1>, any>[k]; } : never, baseObjectInputType<T_1> extends infer T_3 ? { [k_1 in keyof T_3]: baseObjectInputType<T_1>[k_1]; } : never>; } type AnyZodObject = ZodObject<any, any, any>; type ZodUnionOptions = Readonly<[ZodTypeAny, ...ZodTypeAny[]]>; interface ZodUnionDef<T extends ZodUnionOptions = Readonly<[ ZodTypeAny, ZodTypeAny, ...ZodTypeAny[] ]>> extends ZodTypeDef { options: T; typeName: ZodFirstPartyTypeKind.ZodUnion; } declare class ZodUnion<T extends ZodUnionOptions> extends ZodType<T[number]["_output"], ZodUnionDef<T>, T[number]["_input"]> { _parse(input: ParseInput): ParseReturnType<this["_output"]>; get options(): T; static create: <T_1 extends readonly [ZodTypeAny, ZodTypeAny, ...ZodTypeAny[]]>(types: T_1, params?: RawCreateParams) => ZodUnion<T_1>; } interface ZodIntersectionDef<T extends ZodTypeAny = ZodTypeAny, U extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef { left: T; right: U; typeName: ZodFirstPartyTypeKind.ZodIntersection; } declare class ZodIntersection<T extends ZodTypeAny, U extends ZodTypeAny> extends ZodType<T["_output"] & U["_output"], ZodIntersectionDef<T, U>, T["_input"] & U["_input"]> { _parse(input: ParseInput): ParseReturnType<this["_output"]>; static create: <T_1 extends ZodTypeAny, U_1 extends ZodTypeAny>(left: T_1, right: U_1, params?: RawCreateParams) => ZodIntersection<T_1, U_1>; } type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]]; type AssertArray<T> = T extends any[] ? T : never; type OutputTypeOfTuple<T extends ZodTupleItems | []> = AssertArray<{ [k in keyof T]: T[k] extends ZodType<any, any, any> ? T[k]["_output"] : never; }>; type OutputTypeOfTupleWithRest<T extends ZodTupleItems | [], Rest extends ZodTypeAny | null = null> = Rest extends ZodTypeAny ? [...OutputTypeOfTuple<T>, ...Rest["_output"][]] : OutputTypeOfTuple<T>; type InputTypeOfTuple<T extends ZodTupleItems | []> = AssertArray<{ [k in keyof T]: T[k] extends ZodType<any, any, any> ? T[k]["_input"] : never; }>; type InputTypeOfTupleWithRest<T extends ZodTupleItems | [], Rest extends ZodTypeAny | null = null> = Rest extends ZodTypeAny ? [...InputTypeOfTuple<T>, ...Rest["_input"][]] : InputTypeOfTuple<T>; interface ZodTupleDef<T extends ZodTupleItems | [] = ZodTupleItems, Rest extends ZodTypeAny | null = null> extends ZodTypeDef { items: T; rest: Rest; typeName: ZodFirstPartyTypeKind.ZodTuple; } declare class ZodTuple<T extends [ZodTypeAny, ...ZodTypeAny[]] | [] = [ZodTypeAny, ...ZodTypeAny[]], Rest extends ZodTypeAny | null = null> extends ZodType<OutputTypeOfTupleWithRest<T, Rest>, ZodTupleDef<T, Rest>, InputTypeOfTupleWithRest<T, Rest>> { _parse(input: ParseInput): ParseReturnType<this["_output"]>; get items(): T; rest<Rest extends ZodTypeAny>(rest: Rest): ZodTuple<T, Rest>; static create: <T_1 extends [] | [ZodTypeAny, ...ZodTypeAny[]]>(schemas: T_1, params?: RawCreateParams) => ZodTuple<T_1, null>; } type EnumValues<T extends string = string> = readonly [T, ...T[]]; type Values<T extends EnumValues> = { [k in T[number]]: k; }; interface ZodEnumDef<T extends EnumValues = EnumValues> extends ZodTypeDef { values: T; typeName: ZodFirstPartyTypeKind.ZodEnum; } type Writeable<T> = { -readonly [P in keyof T]: T[P]; }; type FilterEnum<Values, ToExclude> = Values extends [] ? [] : Values extends [infer Head, ...infer Rest] ? Head extends ToExclude ? FilterEnum<Rest, ToExclude> : [Head, ...FilterEnum<Rest, ToExclude>] : never; type typecast<A, T> = A extends T ? A : never; declare function createZodEnum<U extends string, T extends Readonly<[U, ...U[]]>>(values: T, params?: RawCreateParams): ZodEnum<Writeable<T>>; declare function createZodEnum<U extends string, T extends [U, ...U[]]>(values: T, params?: RawCreateParams): ZodEnum<T>; declare class ZodEnum<T extends [string, ...string[]]> extends ZodType<T[number], ZodEnumDef<T>, T[number]> { #private; _parse(input: ParseInput): ParseReturnType<this["_output"]>; get options(): T; get enum(): Values<T>; get Values(): Values<T>; get Enum(): Values<T>; extract<ToExtract extends readonly [T[number], ...T[number][]]>(values: ToExtract, newDef?: RawCreateParams): ZodEnum<Writeable<ToExtract>>; exclude<ToExclude extends readonly [T[number], ...T[number][]]>(values: ToExclude, newDef?: RawCreateParams): ZodEnum<typecast<Writeable<FilterEnum<T, ToExclude[number]>>, [string, ...string[]]>>; static create: typeof createZodEnum; } interface ZodPromiseDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef { type: T; typeName: ZodFirstPartyTypeKind.ZodPromise; } declare class ZodPromise<T extends ZodTypeAny> extends ZodType<Promise<T["_output"]>, ZodPromiseDef<T>, Promise<T["_input"]>> { unwrap(): T; _parse(input: ParseInput): ParseReturnType<this["_output"]>; static create: <T_1 extends ZodTypeAny>(schema: T_1, params?: RawCreateParams) => ZodPromise<T_1>; } type RefinementEffect<T> = { type: "refinement"; refinement: (arg: T, ctx: RefinementCtx) => any; }; type TransformEffect<T> = { type: "transform"; transform: (arg: T, ctx: RefinementCtx) => any; }; type PreprocessEffect<T> = { type: "preprocess"; transform: (arg: T, ctx: RefinementCtx) => any; }; type Effect<T> = RefinementEffect<T> | TransformEffect<T> | PreprocessEffect<T>; interface ZodEffectsDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef { schema: T; typeName: ZodFirstPartyTypeKind.ZodEffects; effect: Effect<any>; } declare class ZodEffects<T extends ZodTypeAny, Output = output<T>, Input = input<T>> extends ZodType<Output, ZodEffectsDef<T>, Input> { innerType(): T; sourceType(): T; _parse(input: ParseInput): ParseReturnType<this["_output"]>; static create: <I extends ZodTypeAny>(schema: I, effect: Effect<I["_output"]>, params?: RawCreateParams) => ZodEffects<I, I["_output"]>; static createWithPreprocess: <I extends ZodTypeAny>(preprocess: (arg: unknown, ctx: RefinementCtx) => unknown, schema: I, params?: RawCreateParams) => ZodEffects<I, I["_output"], unknown>; } interface ZodOptionalDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef { innerType: T; typeName: ZodFirstPartyTypeKind.ZodOptional; } declare class ZodOptional<T extends ZodTypeAny> extends ZodType<T["_output"] | undefined, ZodOptionalDef<T>, T["_input"] | undefined> { _parse(input: ParseInput): ParseReturnType<this["_output"]>; unwrap(): T; static create: <T_1 extends ZodTypeAny>(type: T_1, params?: RawCreateParams) => ZodOptional<T_1>; } interface ZodNullableDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef { innerType: T; typeName: ZodFirstPartyTypeKind.ZodNullable; } declare class ZodNullable<T extends ZodTypeAny> extends ZodType<T["_output"] | null, ZodNullableDef<T>, T["_input"] | null> { _parse(input: ParseInput): ParseReturnType<this["_output"]>; unwrap(): T; static create: <T_1 extends ZodTypeAny>(type: T_1, params?: RawCreateParams) => ZodNullable<T_1>; } interface ZodDefaultDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef { innerType: T; defaultValue: () => util.noUndefined<T["_input"]>; typeName: ZodFirstPartyTypeKind.ZodDefault; } declare class ZodDefault<T extends ZodTypeAny> extends ZodType<util.noUndefined<T["_output"]>, ZodDefaultDef<T>, T["_input"] | undefined> { _parse(input: ParseInput): ParseReturnType<this["_output"]>; removeDefault(): T; static create: <T_1 extends ZodTypeAny>(type: T_1, params: { errorMap?: ZodErrorMap | undefined; invalid_type_error?: string | undefined; required_error?: string | undefined; message?: string | undefined; description?: string | undefined; } & { default: T_1["_input"] | (() => util.noUndefined<T_1["_input"]>); }) => ZodDefault<T_1>; } interface ZodCatchDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef { innerType: T; catchValue: (ctx: { error: ZodError; input: unknown; }) => T["_input"]; typeName: ZodFirstPartyTypeKind.ZodCatch; } declare class ZodCatch<T extends ZodTypeAny> extends ZodType<T["_output"], ZodCatchDef<T>, unknown> { _parse(input: ParseInput): ParseReturnType<this["_output"]>; removeCatch(): T; static create: <T_1 extends ZodTypeAny>(type: T_1, params: { errorMap?: ZodErrorMap | undefined; invalid_type_error?: string | undefined; required_error?: string | undefined; message?: string | undefined; description?: string | undefined; } & { catch: T_1["_output"] | (() => T_1["_output"]); }) => ZodCatch<T_1>; } interface ZodBrandedDef<T extends ZodTypeAny> extends ZodTypeDef { type: T; typeName: ZodFirstPartyTypeKind.ZodBranded; } declare const BRAND: unique symbol; type BRAND<T extends string | number | symbol> = { [BRAND]: { [k in T]: true; }; }; declare class ZodBranded<T extends ZodTypeAny, B extends string | number | symbol> extends ZodType<T["_output"] & BRAND<B>, ZodBrandedDef<T>, T["_input"]> { _parse(input: ParseInput): ParseReturnType<any>; unwrap(): T; } interface ZodPipelineDef<A extends ZodTypeAny, B extends ZodTypeAny> extends ZodTypeDef { in: A; out: B; typeName: ZodFirstPartyTypeKind.ZodPipeline; } declare class ZodPipeline<A extends ZodTypeAny, B extends ZodTypeAny> extends ZodType<B["_output"], ZodPipelineDef<A, B>, A["_input"]> { _parse(input: ParseInput): ParseReturnType<any>; static create<A extends ZodTypeAny, B extends ZodTypeAny>(a: A, b: B): ZodPipeline<A, B>; } type BuiltIn = (((...args: any[]) => any) | (new (...args: any[]) => any)) | { readonly [Symbol.toStringTag]: string; } | Date | Error | Generator | Promise<unknown> | RegExp; type MakeReadonly<T> = T extends Map<infer K, infer V> ? ReadonlyMap<K, V> : T extends Set<infer V> ? ReadonlySet<V> : T extends [infer Head, ...infer Tail] ? readonly [Head, ...Tail] : T extends Array<infer V> ? ReadonlyArray<V> : T extends BuiltIn ? T : Readonly<T>; interface ZodReadonlyDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef { innerType: T; typeName: ZodFirstPartyTypeKind.ZodReadonly; } declare class ZodReadonly<T extends ZodTypeAny> extends ZodType<MakeReadonly<T["_output"]>, ZodReadonlyDef<T>, MakeReadonly<T["_input"]>> { _parse(input: ParseInput): ParseReturnType<this["_output"]>; static create: <T_1 extends ZodTypeAny>(type: T_1, params?: RawCreateParams) => ZodReadonly<T_1>; unwrap(): T; } declare enum ZodFirstPartyTypeKind { ZodString = "ZodString", ZodNumber = "ZodNumber", ZodNaN = "ZodNaN", ZodBigInt = "ZodBigInt", ZodBoolean = "ZodBoolean", ZodDate = "ZodDate", ZodSymbol = "ZodSymbol", ZodUndefined = "ZodUndefined", ZodNull = "ZodNull", ZodAny = "ZodAny", ZodUnknown = "ZodUnknown", ZodNever = "ZodNever", ZodVoid = "ZodVoid", ZodArray = "ZodArray", ZodObject = "ZodObject", ZodUnion = "ZodUnion", ZodDiscriminatedUnion = "ZodDiscriminatedUnion", ZodIntersection = "ZodIntersection", ZodTuple = "ZodTuple", ZodRecord = "ZodRecord", ZodMap = "ZodMap", ZodSet = "ZodSet", ZodFunction = "ZodFunction", ZodLazy = "ZodLazy", ZodLiteral = "ZodLiteral", ZodEnum = "ZodEnum", ZodEffects = "ZodEffects", ZodNativeEnum = "ZodNativeEnum", ZodOptional = "ZodOptional", ZodNullable = "ZodNullable", ZodDefault = "ZodDefault", ZodCatch = "ZodCatch", ZodPromise = "ZodPromise", ZodBranded = "ZodBranded", ZodPipeline = "ZodPipeline", ZodReadonly = "ZodReadonly" } declare const userSettingSchema: ZodObject<{ version: ZodNumber; userSince: ZodOptional<ZodNumber>; init: ZodOptional<ZodObject<{ skipOnboarding: ZodOptional<ZodBoolean>; }, "strip", ZodTypeAny, { skipOnboarding?: boolean | undefined; }, { skipOnboarding?: boolean | undefined; }>>; }, "strip", ZodTypeAny, { version: number; init?: { skipOnboarding?: boolean | undefined; } | undefined; userSince?: number | undefined; }, { version: number; init?: { skipOnboarding?: boolean | undefined; } | undefined; userSince?: number | undefined; }>; declare function globalSettings(filePath?: string): Promise<Settings>; declare function _clearGlobalSettings(): void; /** * A class for