import * as Morphir_IR_AccessControlled from "./../../morphir/ir/access-controlled";
import * as Morphir_IR_Documented from "./../../morphir/ir/documented";
import * as Morphir_IR_Name from "./../../morphir/ir/name";
import * as Morphir_IR_Path from "./../../morphir/ir/path";
import * as Morphir_IR_Type from "./../../morphir/ir/type";
import * as Morphir_IR_Value from "./../../morphir/ir/value";
export type Definition<Ta, Va> = {
    types: Map<Morphir_IR_Name.Name, Morphir_IR_AccessControlled.AccessControlled<Morphir_IR_Documented.Documented<Morphir_IR_Type.Definition<Ta>>>>;
    values: Map<Morphir_IR_Name.Name, Morphir_IR_AccessControlled.AccessControlled<Morphir_IR_Documented.Documented<Morphir_IR_Value.Definition<Ta, Va>>>>;
    doc: string | null;
};
export declare function decodeDefinition<Ta, Va>(decodeTa: (input: any) => Ta, decodeVa: (input: any) => Va, input: any): Definition<Ta, Va>;
export declare function encodeDefinition<Ta, Va>(encodeTa: (value: Ta) => any, encodeVa: (value: Va) => any, value: Definition<Ta, Va>): any;
export type ModuleName = Morphir_IR_Path.Path;
export declare function decodeModuleName(input: any): ModuleName;
export declare function encodeModuleName(value: ModuleName): any;
export type QualifiedModuleName = [Morphir_IR_Path.Path, Morphir_IR_Path.Path];
export declare function decodeQualifiedModuleName(input: any): QualifiedModuleName;
export declare function encodeQualifiedModuleName(value: QualifiedModuleName): any;
export type Specification<Ta> = {
    types: Map<Morphir_IR_Name.Name, Morphir_IR_Documented.Documented<Morphir_IR_Type.Specification<Ta>>>;
    values: Map<Morphir_IR_Name.Name, Morphir_IR_Documented.Documented<Morphir_IR_Value.Specification<Ta>>>;
    doc: string | null;
};
export declare function decodeSpecification<Ta>(decodeTa: (input: any) => Ta, input: any): Specification<Ta>;
export declare function encodeSpecification<Ta>(encodeTa: (value: Ta) => any, value: Specification<Ta>): any;
declare const _default: {};
export default _default;
