import { type Element } from '@makeswift/controls';
import { type Action, type UnknownAction, type DocumentPayload } from '../actions';
export { type Data, type ElementData, type ElementReference, type Element, isElementReference, } from '@makeswift/controls';
export type DocumentReference = {
    key: string;
};
export declare function createDocumentReference(key: string): DocumentReference;
type BaseDocument = {
    key: string;
    rootElement: Element;
    locale: string | null;
};
export declare const EMBEDDED_DOCUMENT_TYPE: "EMBEDDED_DOCUMENT";
export type EmbeddedDocument = {
    key: string;
    locale: string | null;
    id: string;
    type: string;
    name: string;
    rootElement: Element;
    meta: {
        allowLocaleFallback: boolean;
        requestedLocale: string | null;
        description?: string;
    };
    __type: typeof EMBEDDED_DOCUMENT_TYPE;
};
export type Document = BaseDocument | EmbeddedDocument;
export declare function getRootElement(document: Document | DocumentPayload): Element;
export declare function createBaseDocument(key: string, rootElement: Element, locale: string | null): Document;
export type State = Map<string, Document>;
export declare function getInitialState({ documents }?: {
    documents?: Document[];
}): State;
export declare function getDocuments(state: State): State;
export declare function getDocument(state: State, documentKey: string): Document | null;
export declare function reducer(state: State | undefined, action: Action | UnknownAction): State;
//# sourceMappingURL=read-only-documents.d.ts.map