import * as t from "io-ts"; export declare const SimpleFieldType = "SimpleField"; export declare const SimpleField: t.ExactC; name: t.StringC; legacy: t.BooleanC; }>>; export type SimpleField = t.TypeOf; export interface Group { TYPE: typeof GroupType; name: string; fields: { [key: string]: GroupOrField; }; } export declare const Group: t.Type; export type GroupOrField = Simple | Group; export declare const GroupOrFieldC: t.Type; export type Field = GroupOrField | SliceZone; export declare const FieldC: t.Type; export declare const SliceZoneType = "SliceZone"; export interface SliceZone { TYPE: typeof SliceZoneType; name: string; slices: { [key: string]: GroupOrField | Slice; }; } export declare const SliceZone: t.Type; export interface Variation { TYPE: "Variation"; nonRepeat: { fields: { [key: string]: GroupOrField; }; }; repeat: { fields: { [key: string]: Field; }; }; } export declare const VariationC: t.Type; export declare const CompositeSliceType = "CompositeSlice"; export declare const CompositeSlice: t.ExactC; nonRepeat: t.ExactC>; TYPE: t.LiteralC<"NonRepeat">; }>>; repeat: t.ExactC>; TYPE: t.LiteralC<"Repeat">; }>>; }>>; export type CompositeSlice = t.TypeOf; export declare const SharedSliceType = "SharedSlice"; export declare const SharedSlice: t.ExactC; variations: t.RecordC>; }>>; export type SharedSlice = t.TypeOf; export declare const Slice: t.UnionC<[t.ExactC; variations: t.RecordC>; }>>, t.ExactC; nonRepeat: t.ExactC>; TYPE: t.LiteralC<"NonRepeat">; }>>; repeat: t.ExactC>; TYPE: t.LiteralC<"Repeat">; }>>; }>>]>; export type Slice = t.TypeOf; export declare const GroupType = "Group"; export interface DocRelation { TYPE: typeof DocRelationType; name: string; uuid: string; fields: { [keyA: string]: { [keyB: string]: Field; }; }; } export declare const DocRelationC: t.Type; export type Simple = DocRelation | SimpleField; export declare const Simple: t.UnionC<[t.Type, t.ExactC; name: t.StringC; legacy: t.BooleanC; }>>]>; export declare const DocType = "Doc"; export interface Doc { TYPE: typeof DocType; typ: string; fields: Record; } export declare const Doc: t.Type; export declare const Docs: t.RecursiveType, unknown, unknown, unknown>; export type Docs = t.TypeOf; export declare const DocRelationType = "DocRelation"; export declare function extractGroupOrFieldIfAny(fetchOpt: Field | undefined): GroupOrField | undefined; export declare function extractSliceFetchIfAny(fetchOpt: Field | undefined): SliceZone | undefined;