import type { DesignElement, PostextConfig } from '../../types.js'; export type Fields = Record; export type Step = string | { key: 'id' | 'level'; value: unknown; index: number; }; export type Path = Step[]; export declare const isFields: (v: unknown) => v is Fields; export declare const isDimension: (v: unknown) => v is { value: number; unit: string; }; export declare const isColor: (v: unknown) => v is { hex: string; }; export declare const clone: (v: T) => T; export declare const show: (path: Path) => string; /** Whether `config` reads the same once stripped; `null` for a * configuration the resolver rejects (a value of the wrong type). */ export declare function survives(config: PostextConfig): boolean | null; /** Every node of `value` a configuration may set: scalars, dimensions and * colours whole, lists whole and item by item, sections whole and field * by field. Items of a list that carry an `id` or a `level` are named by * it, since a configuration lists only the ones it changes. */ export declare function nodes(value: unknown, path?: Path, out?: { path: Path; value: unknown; }[]): { path: Path; value: unknown; }[]; export declare function at(root: unknown, path: Path): unknown; /** `config` with `value` at `path`, the sections and list items on the way * created as a configuration would write them. */ export declare function withAt(config: PostextConfig, path: Path, value: unknown): PostextConfig; export declare const pt: (value: number) => { value: number; unit: "pt"; }; export declare const hex: (value: string) => { hex: string; model: "hex"; }; export declare const text: (id: string, content: string, extra?: Fields) => DesignElement; export declare const CONTEXTS: Record; export declare const resolvedOf: (config: PostextConfig) => Fields; /** The values to try at a node: the empty one of its type, the plain * document's, the other way for a flag, and a few another document has. */ export declare function candidates(path: Path, value: unknown): unknown[]; /** A value of another document for the node: what moving it looks like. */ export declare function moved(path: Path, value: unknown): unknown; export declare function targets(config: PostextConfig): { path: Path; value: unknown; }[]; /** Registers part `part` (from 1) of `of`. */ export declare function registerSweep(part: number, of: number): void; /** The sections and fields each document has, for the parts to share. */ export declare function sweepSizes(): { name: string; sections: number; cases: number; }[]; //# sourceMappingURL=stripRoundTrip.harness.d.ts.map