type Stored<T> = {
    id: string;
    createdAt: string;
    record: T;
};
type ListFilter = {
    limit?: number;
    cursor?: string;
};
type Page<R> = {
    items: R[];
    nextCursor: string | null;
};
interface RecordStore<T> {
    append(record: T): Promise<Stored<T>>;
    list(filter?: ListFilter): Promise<Page<Stored<T>>>;
}
interface RecordStoreAdmin<T> extends RecordStore<T> {
    get(id: string): Promise<Stored<T> | null>;
    delete(id: string): Promise<void>;
}

export type { ListFilter as L, Page as P, RecordStore as R, Stored as S, RecordStoreAdmin as a };
