import { type Y } from '@blockeditor/store';
import type { SurfaceBlockModel } from '../surface-model.js';
import { ElementModel } from './base.js';
export declare function createElementModel(type: string, id: string, yMap: Y.Map<unknown>, model: SurfaceBlockModel, options: {
    onChange: (payload: {
        id: string;
        props: Record<string, {
            oldValue: unknown;
        }>;
    }) => void;
    skipFieldInit?: boolean;
}): {
    model: ElementModel;
    dispose: () => void;
};
export declare function propsToY(type: string, props: Record<string, unknown>): Record<string, unknown> | (import("./base.js").BaseProps & {
    children: Y.Map<boolean>;
    title: Y.Text;
}) | import("./shape.js").ShapeProps;
export declare function createModelFromProps(props: Record<string, unknown>, model: SurfaceBlockModel, options: {
    onChange: (payload: {
        id: string;
        props: Record<string, {
            oldValue: unknown;
        }>;
    }) => void;
}): {
    model: ElementModel<import("./base.js").BaseProps>;
    dispose: () => void;
};
//# sourceMappingURL=index.d.ts.map