import * as IO from "../../helpers/io.js";
import { EntityLink } from "../links/entityLink.js";
type PermissionLink = EntityLink;
export interface RecordPermissions {
    read?: "public" | ReadonlyArray<PermissionLink>;
    write?: ReadonlyArray<PermissionLink>;
    notify?: ReadonlyArray<PermissionLink>;
}
export declare const RRecordPermissions: IO.Type<RecordPermissions>;
declare function buildSimplePermissions(authorEntity: string, otherEntities: ReadonlyArray<string>): RecordPermissions;
declare function buildReadonlyPermissions(authorEntity: string, otherEntities: ReadonlyArray<string>): RecordPermissions;
declare function toReadEntities({ read }: RecordPermissions): string[];
export declare const RecordPermissions: {
    public: RecordPermissions;
    private: RecordPermissions;
    simple: typeof buildSimplePermissions;
    readonly: typeof buildReadonlyPermissions;
    toReadEntities: typeof toReadEntities;
};
export {};
