Import
import { ProposedDestination } from "@typed/navigation/model";Signatures
export declare const ProposedDestination: Schema.Struct<{
readonly url: Schema.URLFromString;
readonly state: Schema.Unknown;
readonly sameDocument: Schema.Boolean;
readonly key: Schema.optional<Schema.String>;
}>;export type ProposedDestination = typeof ProposedDestination.Type;Why
Separating a requested destination from a committed one makes redirects, guards, and backend commits explicit instead of pretending every requested URL is already in history.
Ownership and lifetime
This immutable schema acquires no resources. Values live for as long as the transition or caller retaining them; a navigation provider owns conversion to a committed {@link Destination}.
Examples
import { ProposedDestination } from "@typed/navigation/model"
import * as Schema from "effect/Schema"
const decode = Schema.decodeUnknownSync(ProposedDestination)
const destination = decode({ url: "/settings", state: {}, sameDocument: true })Other public imports
These import paths expose the same declaration. Each page retains its own public name and signature.