/**
 * Serialization functions for converting spec types to their serialized forms.
 */
import type { AnySchemaModel } from '@contractspec/lib.schema';
import type { DataViewSpec } from '../data-views';
import type { AnyEventSpec } from '../events';
import type { FormSpec } from '../forms';
import type { AnyOperationSpec } from '../operations';
import type { PresentationSpec } from '../presentations';
import type { ResourceRefDescriptor } from '../resources';
import type { SerializedDataViewSpec, SerializedEventSpec, SerializedFormSpec, SerializedOperationSpec, SerializedPresentationSpec, SerializedSchemaModel } from './types';
/**
 * Serialize a SchemaModel to a plain JSON object.
 */
export declare function serializeSchemaModel(model: AnySchemaModel | ResourceRefDescriptor<boolean> | null | undefined): SerializedSchemaModel | null;
/**
 * Serialize an OperationSpec to a plain JSON object.
 */
export declare function serializeOperationSpec(spec: AnyOperationSpec | null | undefined): SerializedOperationSpec | null;
/**
 * Serialize an EventSpec to a plain JSON object.
 */
export declare function serializeEventSpec(spec: AnyEventSpec | null | undefined): SerializedEventSpec | null;
/**
 * Serialize a PresentationSpec to a plain JSON object.
 */
export declare function serializePresentationSpec(spec: PresentationSpec | null | undefined): SerializedPresentationSpec | null;
/**
 * Serialize a DataViewSpec to a plain JSON object.
 */
export declare function serializeDataViewSpec(spec: DataViewSpec | null | undefined): SerializedDataViewSpec | null;
/**
 * Serialize a FormSpec to a plain JSON object.
 */
export declare function serializeFormSpec(spec: FormSpec | null | undefined): SerializedFormSpec | null;
