import type { PulledEntries } from '../../client/management/types';
import type { EnvTarget } from '../helpers';
import type { LocalEntry } from '../content/reader';
export type EntryBaseSnapshotTarget = Readonly<{
    env: EnvTarget;
    siteId: string;
}>;
export type EntryBaseSnapshotSubject = Readonly<{
    contentType: string;
    identifier: string;
}>;
export type EntryBaseSnapshot = Readonly<{
    version: 'entry-base.v1';
    target: Readonly<{
        env: EnvTarget;
        siteIdHash: string;
    }>;
    subject: EntryBaseSnapshotSubject;
    pulledAt: string;
    remoteVersion: Readonly<{
        createdAt?: string;
        updatedAt?: string;
        publishedAt?: string | null;
    }>;
    entry: LocalEntry;
}>;
export type WriteEntryBaseSnapshotsInput = Readonly<{
    contentDir: string;
    target: EntryBaseSnapshotTarget;
    contentType: string;
    entries: PulledEntries['entries'];
    meta: PulledEntries['meta'];
    cleanupMissing?: boolean;
}>;
export type WriteEntryBaseSnapshotsResult = Readonly<{
    rootDir: string;
    count: number;
}>;
export declare function entryBaseSnapshotRoot(contentDir: string): string;
export declare function entryBaseSnapshotPath(input: Readonly<{
    contentDir: string;
    target: EntryBaseSnapshotTarget;
    subject: EntryBaseSnapshotSubject;
}>): string;
export declare function writeEntryBaseSnapshots(input: WriteEntryBaseSnapshotsInput): Promise<WriteEntryBaseSnapshotsResult>;
export declare function readEntryBaseSnapshot(input: Readonly<{
    contentDir: string;
    target: EntryBaseSnapshotTarget;
    subject: EntryBaseSnapshotSubject;
}>): Promise<EntryBaseSnapshot | null>;
