import { BlockSchema } from '../models/BlockSchema';
import { BlockType } from '../models/BlockType';
import { ObjectLevelCan } from '../models/ObjectLevelCan';
import { SchemaValues } from '../types/schemas';
export type BlockDocumentReference = {
    blockType: BlockType;
    id: string;
    isAnonymous: boolean;
    name: string;
};
export type BlockDocumentReferences = Record<string, BlockDocumentReference | undefined>;
export interface IBlockDocument {
    id: string;
    created: Date;
    updated: Date;
    name: string;
    isAnonymous: boolean;
    data: SchemaValues;
    blockSchemaId: string;
    blockSchema: BlockSchema;
    blockTypeId: string;
    blockType: BlockType;
    blockDocumentReferences: Record<string, unknown>;
    can: ObjectLevelCan<'block'>;
}
export declare class BlockDocument implements IBlockDocument {
    readonly id: string;
    readonly created: Date;
    readonly updated: Date;
    readonly isAnonymous: boolean;
    readonly kind = "blockDocument";
    name: string;
    data: SchemaValues;
    blockSchemaId: string;
    blockSchema: BlockSchema;
    blockTypeId: string;
    blockType: BlockType;
    blockDocumentReferences: Record<string, unknown>;
    can: ObjectLevelCan<'block'>;
    constructor(blockDocument: IBlockDocument);
}
