import { type array, type mutable, type show, type Thunk } from "@ark/util"; import type { BaseConstraint } from "../constraint.ts"; import type { GenericRoot } from "../generic.ts"; import type { InternalModule } from "../module.ts"; import type { BaseNode } from "../node.ts"; import type { BaseParseContext } from "../parse.ts"; import type { BaseRoot } from "../roots/root.ts"; import type { BaseScope } from "../scope.ts"; import type { ArkError, ArkErrors } from "./errors.ts"; export declare const makeRootAndArrayPropertiesMutable: (o: o) => makeRootAndArrayPropertiesMutable; export type makeRootAndArrayPropertiesMutable = { -readonly [k in keyof inner]: inner[k] extends array | undefined ? mutable : inner[k]; } & unknown; export type internalImplementationOf = { [k in Exclude]: external[k] extends ((...args: infer args) => unknown) ? (...args: { [i in keyof args]: never; }) => unknown : unknown; }; export type arkKind = typeof arkKind; export declare const arkKind: " arkKind"; export interface ArkKinds { constraint: BaseConstraint; root: BaseRoot; scope: BaseScope; generic: GenericRoot; module: InternalModule; error: ArkError; errors: ArkErrors; context: BaseParseContext; } export type ArkKind = show; export declare const hasArkKind: (value: unknown, kind: kind) => value is ArkKinds[kind]; export declare const isNode: (value: unknown) => value is BaseNode; export type unwrapDefault = thunkableValue extends Thunk ? returnValue : thunkableValue;