import type { RoUint8Array, RoNeTuple, RoPair, RoArray, If } from "@xlabs-xyz/const-utils"; import type { Layout, ProperLayout, Item, NumItem, BytesItem, ArrayItem, SwitchItem, DeriveType, NumType, LayoutObject, FixedConversion, CustomConversion } from "./layout.js"; export type FixedItemsOf = StartFilterItemsOf; export type DynamicItemsOf = StartFilterItemsOf; export declare const fixedItemsOf: (layout: L) => FilterItemsOf; export declare const dynamicItemsOf: (layout: L) => FilterItemsOf; export declare function addFixedValues(layout: L, dynamicValues: DeriveType>): DeriveType; type IPLPair = RoPair; type FilterItemsOfIPLPairs, Fixed extends boolean> = ILA extends infer V extends RoArray ? V extends readonly [infer H extends IPLPair, ...infer T extends RoArray] ? FilterItemsOf extends infer P extends ProperLayout | void ? P extends RoNeTuple ? [[H[0], P], ...FilterItemsOfIPLPairs] : FilterItemsOfIPLPairs : never : [] : never; type FilterLayoutOfItem = FilterItemsOf extends infer L extends Item | RoNeTuple ? { readonly [K in keyof I]: K extends "layout" ? L : I[K]; } : void; type FilterItem = II extends infer I extends Item ? I extends NumItem ? I["custom"] extends NumType | FixedConversion ? If : If : I extends ArrayItem ? FilterLayoutOfItem : I extends BytesItem & { readonly layout: Layout; } ? I["custom"] extends { readonly custom: FixedConversion; } ? If : I extends { readonly custom: CustomConversion; } ? If : FilterLayoutOfItem : I extends BytesItem ? I["custom"] extends RoUint8Array | FixedConversion ? If : If : I extends SwitchItem ? { readonly [K in keyof I]: K extends "layouts" ? FilterItemsOfIPLPairs : I[K]; } : never : never; type FilterItemsOf = Layout extends L ? Layout : L extends infer LI extends Item ? FilterItem : L extends infer P extends ProperLayout ? P extends readonly [infer H extends Item, ...infer T extends ProperLayout] ? FilterItem extends infer NI ? NI extends Item ? [NI, ...FilterItemsOf] : FilterItemsOf : never : [] : never; type StartFilterItemsOf = FilterItemsOf extends infer V extends Layout ? V : never; export {}; //# sourceMappingURL=fixedDynamic.d.ts.map