import * as TE from 'fp-ts/TaskEither'; import * as E from 'fp-ts/Either'; import * as O from 'fp-ts/Option'; import * as t from 'io-ts'; import { Codec } from '../codec/Codec'; export type DynamicType = string | number | boolean | null | DynamicObject | DynamicArray; export type DynamicObject = { [x: string]: DynamicType; }; export type DynamicArray = Array; export interface DynamicObjectInterface { fromBase64String: (base64Str: string) => E.Either; removeNullValues: (value: DynamicObject) => DynamicObject; isDynamicObject: (value: unknown) => value is DynamicObject; getTypedProperty: (dynamicObject: DynamicObject, name: string, codec: Codec) => O.Option; getObjectProperty: (dynamicObject: DynamicObject, name: string) => O.Option; getStringProperty: (dynamicObject: DynamicObject, name: string) => O.Option; getNumberProperty: (dynamicObject: DynamicObject, name: string) => O.Option; getBooleanProperty: (dynamicObject: DynamicObject, name: string) => O.Option; } export declare const DynamicObject: DynamicObjectInterface; export interface DynamicTypeInterface { readFromFile: (path: string) => E.Either; writeToFile: (path: string, value: DynamicType) => E.Either; writeToFileAsync: (path: string, value: DynamicType) => TE.TaskEither; safeCast: (dynamicType: DynamicType, codec: Codec) => E.Either; getStringProperty: (dynamicObject: DynamicObject, name: string) => O.Option; getNumberProperty: (dynamicObject: DynamicObject, name: string) => O.Option; getBooleanProperty: (dynamicObject: DynamicObject, name: string) => O.Option; } export declare const DynamicType: DynamicTypeInterface; export declare const dynamicTypeDescriptor: t.Type; export declare const dynamicObjectTypeDescriptor: t.Type; export declare const dynamicArrayTypeDescriptor: t.Type; export declare const castUndefinedPropertyToNull: (obj: Record) => DynamicType; //# sourceMappingURL=DynamicType.d.ts.map