import { DependencyList } from "react"; import type { Atom } from "../atom/index.js"; import type { EnsoUtils as Utils } from "../utils.ts"; declare const hintSymbol: unique symbol; export declare class State> = Atom.Parent.Default> extends Atom<"state", "exact", Atom.Def, Atom.Qualifier.Internalize, Parent> implements Utils.StaticImplements, Atom.Static.Subclass<"state">>, State.Exact { static create> = Atom.Parent.Default>(value: Value, parent?: Atom.Parent.Ref<"state", Qualifier, Parent>): Atom.Envelop<"state", "exact", Atom.Def, Qualifier, Parent>; static base>(state: Envelop): Atom.Base.Result<"state", Envelop>; static proxy>(state: State.Envelop, intoMapper: Atom.Proxy.Into.Mapper, fromMapper: Atom.Proxy.From.Mapper): Atom.Proxy.Envelop<"state", Variant, ValueDef, ComputedValue, Qualifier, Parent>; static use(initialValue: Value, deps: DependencyList): State.Exact; static useEnsure | Utils.Falsy, MappedType extends Atom.Envelop<"state", any, any> | Utils.Falsy = undefined>(state: StateType, map?: Atom.Static.Ensure.Mapper<"state", StateType, MappedType>): Atom.Static.Ensure.Result<"state", StateType, MappedType>; [hintSymbol]: true; } export declare namespace State { type Envelop> = "immutable" extends Variant ? Immutable.Internal : "optional" extends Variant ? Optional.Internal : "base" extends Variant ? Base.Internal : "exact" extends Variant ? Exact.Internal : never; type Prop = "state"; interface Exact> = Atom.Parent.Default> extends Exact.Internal, Atom.Qualifier.Internalize, Parent> { } namespace Exact { interface Internal = Atom.Parent.Default> extends Atom.Exact<"state", "exact", ValueDef, Qualifier, Parent>, Immutable.Interface<"exact", ValueDef, Qualifier, Parent> { } type Decomposed> = Atom.Parent.Default> = Atom.Decompose.Result<"state", "exact", Atom.Def, Atom.Qualifier.Internalize, Parent>; type DecomposedVariant> = Atom.Parent.Default> = Decomposed & { value: Variant; }; type DecomposedNullish> = Atom.Parent.Default> = Atom.DecomposeNullish.Result<"state", "exact", Atom.Def, Atom.Qualifier.Internalize, Parent>; type Discriminated>, Qualifier extends Atom.Qualifier.External.Constraint = Atom.Qualifier.External.Default, Parent extends Atom.Parent.Constraint> = Atom.Parent.Default> = Atom.Discriminate.Result<"state", "exact", Atom.Def, Discriminator, Atom.Qualifier.Internalize, Parent>; type DiscriminatedVariant>, Variant extends Discriminator extends keyof Value ? Value[Discriminator] : never, Qualifier extends Atom.Qualifier.External.Constraint = Atom.Qualifier.External.Default, Parent extends Atom.Parent.Constraint> = Atom.Parent.Default> = Discriminated & { discriminator: Variant; }; } interface Base> = Atom.Parent.Default> extends Base.Internal, Atom.Qualifier.Internalize, Parent> { } namespace Base { interface Internal = Atom.Parent.Default> extends Base.Interface<"base", ValueDef, Qualifier, Parent> { } interface Interface = Atom.Parent.Default> extends Immutable.Interface { } type Decomposed> = Atom.Parent.Default> = Atom.Decompose.Result<"state", "base", Atom.Def, Atom.Qualifier.Internalize, Parent>; type DecomposedVariant> = Atom.Parent.Default> = Decomposed & { value: Variant; }; type DecomposedNullish> = Atom.Parent.Default> = Atom.DecomposeNullish.Result<"state", "base", Atom.Def, Atom.Qualifier.Internalize, Parent>; type Discriminated>, Qualifier extends Atom.Qualifier.External.Constraint = Atom.Qualifier.External.Default, Parent extends Atom.Parent.Constraint> = Atom.Parent.Default> = Atom.Discriminate.Result<"state", "base", Atom.Def, Discriminator, Atom.Qualifier.Internalize, Parent>; type DiscriminatedVariant>, Variant extends Discriminator extends keyof Value ? Value[Discriminator] : never, Qualifier extends Atom.Qualifier.External.Constraint = Atom.Qualifier.External.Default, Parent extends Atom.Parent.Constraint> = Atom.Parent.Default> = Discriminated & { discriminator: Variant; }; } interface Optional> = Atom.Parent.Default> extends Optional.Internal, Atom.Qualifier.Internalize, Parent> { } namespace Optional { interface Internal = Atom.Parent.Default> extends Optional.Interface<"optional", ValueDef, Qualifier, Parent> { } interface Interface = Atom.Parent.Default> extends Immutable.Interface { } type Decomposed> = Atom.Parent.Default> = Atom.Decompose.Result<"state", "optional", Atom.Def, Atom.Qualifier.Internalize, Parent>; type DecomposedVariant> = Atom.Parent.Default> = Decomposed & { value: Variant; }; type DecomposedNullish> = Atom.Parent.Default> = Atom.DecomposeNullish.Result<"state", "optional", Atom.Def, Atom.Qualifier.Internalize, Parent>; type Discriminated>, Qualifier extends Atom.Qualifier.External.Constraint = Atom.Qualifier.External.Default, Parent extends Atom.Parent.Constraint> = Atom.Parent.Default> = Atom.Discriminate.Result<"state", "optional", Atom.Def, Discriminator, Atom.Qualifier.Internalize, Parent>; type DiscriminatedVariant>, Variant extends Discriminator extends keyof Value ? Value[Discriminator] : never, Qualifier extends Atom.Qualifier.External.Constraint = Atom.Qualifier.External.Default, Parent extends Atom.Parent.Constraint> = Atom.Parent.Default> = Discriminated & { discriminator: Variant; }; } interface Immutable> = Atom.Parent.Default> extends Immutable.Internal, Atom.Qualifier.Internalize, Parent> { } namespace Immutable { interface Internal = Atom.Parent.Default> extends Immutable.Interface<"immutable", ValueDef, Qualifier, Parent> { } interface Interface = Atom.Parent.Default> extends Atom.Immutable<"state", Variant, ValueDef, Qualifier, Parent> { [hintSymbol]: true; } type Decomposed> = Atom.Parent.Default> = Atom.Decompose.Result<"state", "immutable", Atom.Def, Atom.Qualifier.Internalize, Parent>; type DecomposedVariant> = Atom.Parent.Default> = Decomposed & { value: Variant; }; type DecomposedNullish> = Atom.Parent.Default> = Atom.DecomposeNullish.Result<"state", "immutable", Atom.Def, Atom.Qualifier.Internalize, Parent>; type Discriminated>, Qualifier extends Atom.Qualifier.External.Constraint = Atom.Qualifier.External.Default, Parent extends Atom.Parent.Constraint> = Atom.Parent.Default> = Atom.Discriminate.Result<"state", "immutable", Atom.Def, Discriminator, Atom.Qualifier.Internalize, Parent>; type DiscriminatedVariant>, Variant extends Discriminator extends keyof Value ? Value[Discriminator] : never, Qualifier extends Atom.Qualifier.External.Constraint = Atom.Qualifier.External.Default, Parent extends Atom.Parent.Constraint> = Atom.Parent.Default> = Discriminated & { discriminator: Variant; }; } type Shared> = Atom.Parent.Default> = Shared.Exact; namespace Shared { type Def = Atom.Shared.Def; type Proxy = Atom.Proxy.Qualifier>; type Exact> = Atom.Parent.Default> = State.Exact.Internal, Atom.Qualifier.Internalize, Parent>; type Base> = Atom.Parent.Default> = State.Base.Internal, Atom.Qualifier.Internalize, Parent>; type Immutable> = Atom.Parent.Default> = State.Immutable.Internal, Atom.Qualifier.Internalize, Parent>; } type Def = Atom.Def; namespace Value { namespace Use { interface Props extends Meta.Props { meta?: boolean | undefined; } type IncludeMeta = undefined extends Props ? false : Props extends Use.Props ? Props["meta"] extends true ? true : Props["meta"] extends false ? false : false : never; } } type Parent = Atom.Parent.Interface; type Unwatch = Atom.Unwatch; type Decomposed> = Atom.Parent.Default> = Atom.Decompose.Result<"state", "exact", Atom.Def, Atom.Qualifier.Internalize, Parent>; type DecomposedNullish> = Atom.Parent.Default> = Atom.DecomposeNullish.Result<"state", "exact", Atom.Def, Atom.Qualifier.Internalize, Parent>; type DecomposedVariant> = Atom.Parent.Default> = Decomposed & { value: Variant; }; type Discriminated>, Qualifier extends Atom.Qualifier.External.Constraint = Atom.Qualifier.External.Default, Parent extends Atom.Parent.Constraint> = Atom.Parent.Default> = Atom.Discriminate.Result<"state", "exact", Atom.Def, Discriminator, Atom.Qualifier.Internalize, Parent>; type DiscriminatedVariant>, Variant extends Discriminator extends keyof Value ? Value[Discriminator] : never, Qualifier extends Atom.Qualifier.External.Constraint = Atom.Qualifier.External.Default, Parent extends Atom.Parent.Constraint> = Atom.Parent.Default> = Discriminated & { discriminator: Variant; }; type Proxy = Atom.Proxy.Qualifier>; interface Meta { } namespace Meta { interface Props { } } } export {}; //# sourceMappingURL=definition.d.ts.map