import { type ThunkAction } from '@reduxjs/toolkit';
import { type LocaleString } from '../locale';
import { type Breakpoints } from './modules/breakpoints';
import { type Element, type Document, EMBEDDED_DOCUMENT_TYPE } from './modules/read-only-documents';
type DocumentPayloadBaseDocument = {
    key: string;
    rootElement: Element;
    locale?: string | null;
};
type DocumentPayloadEmbeddedDocument = {
    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 DocumentPayload = DocumentPayloadBaseDocument | DocumentPayloadEmbeddedDocument;
export declare const SharedActionTypes: {
    readonly MAKESWIFT_CONNECTION_INIT: "MAKESWIFT_CONNECTION_INIT";
    readonly REGISTER_DOCUMENT: "REGISTER_DOCUMENT";
    readonly UNREGISTER_DOCUMENT: "UNREGISTER_DOCUMENT";
    readonly SET_BREAKPOINTS: "SET_BREAKPOINTS";
    readonly SET_LOCALE: "SET_LOCALE";
};
type MakeswiftConnectionInitAction = {
    type: typeof SharedActionTypes.MAKESWIFT_CONNECTION_INIT;
};
type RegisterDocumentAction = {
    type: typeof SharedActionTypes.REGISTER_DOCUMENT;
    payload: {
        documentKey: string;
        document: DocumentPayload;
    };
};
type UnregisterDocumentAction = {
    type: typeof SharedActionTypes.UNREGISTER_DOCUMENT;
    payload: {
        documentKey: string;
    };
};
export type SetBreakpointsAction = {
    type: typeof SharedActionTypes.SET_BREAKPOINTS;
    payload: {
        breakpoints: Breakpoints;
    };
};
type SetLocaleAction = {
    type: typeof SharedActionTypes.SET_LOCALE;
    payload: {
        locale: LocaleString;
        pathname?: string;
    };
};
export type SharedAction = MakeswiftConnectionInitAction | RegisterDocumentAction | UnregisterDocumentAction | SetBreakpointsAction | SetLocaleAction;
export declare function makeswiftConnectionInit(): MakeswiftConnectionInitAction;
export declare function registerDocument(document: Document): RegisterDocumentAction;
export declare function unregisterDocument(documentKey: string): UnregisterDocumentAction;
export declare function registerDocumentsEffect(documents: Document[]): ThunkAction<() => void, unknown, unknown, SharedAction>;
export declare function setBreakpoints(breakpoints: Breakpoints): SetBreakpointsAction;
export declare function setLocale(locale: Intl.Locale, pathname?: string): SetLocaleAction;
export {};
//# sourceMappingURL=shared-api.d.ts.map