import type { StoragePromptBlockType, StoragePromptBlockSnapshotType, StorageResolvedPromptBlockType, StorageCreatePromptBlockInput, StorageUpdatePromptBlockInput, StorageListPromptBlocksInput, StorageListPromptBlocksOutput, StorageListPromptBlocksResolvedOutput } from '../../types.js';
import { VersionedStorageDomain } from '../versioned.js';
import type { VersionBase, CreateVersionInputBase, ListVersionsInputBase, ListVersionsOutputBase } from '../versioned.js';
/**
 * Represents a stored version of a prompt block's content.
 * Config fields are top-level on the version row (no nested snapshot object).
 */
export interface PromptBlockVersion extends StoragePromptBlockSnapshotType, VersionBase {
    /** ID of the prompt block this version belongs to */
    blockId: string;
}
/**
 * Input for creating a new prompt block version.
 * Config fields are top-level (no nested snapshot object).
 */
export interface CreatePromptBlockVersionInput extends StoragePromptBlockSnapshotType, CreateVersionInputBase {
    /** ID of the prompt block this version belongs to */
    blockId: string;
}
/**
 * Sort direction for version listings.
 */
export type PromptBlockVersionSortDirection = 'ASC' | 'DESC';
/**
 * Fields that can be used for ordering version listings.
 */
export type PromptBlockVersionOrderBy = 'versionNumber' | 'createdAt';
/**
 * Input for listing prompt block versions with pagination and sorting.
 */
export interface ListPromptBlockVersionsInput extends ListVersionsInputBase {
    /** ID of the prompt block to list versions for */
    blockId: string;
}
/**
 * Output for listing prompt block versions with pagination info.
 */
export interface ListPromptBlockVersionsOutput extends ListVersionsOutputBase<PromptBlockVersion> {
}
export declare abstract class PromptBlocksStorage extends VersionedStorageDomain<StoragePromptBlockType, StoragePromptBlockSnapshotType, StorageResolvedPromptBlockType, PromptBlockVersion, CreatePromptBlockVersionInput, ListPromptBlockVersionsInput, ListPromptBlockVersionsOutput, {
    promptBlock: StorageCreatePromptBlockInput;
}, StorageUpdatePromptBlockInput, StorageListPromptBlocksInput | undefined, StorageListPromptBlocksOutput, StorageListPromptBlocksResolvedOutput> {
    protected readonly listKey = "promptBlocks";
    protected readonly versionMetadataFields: ("createdAt" | "id" | "versionNumber" | "changedFields" | "changeMessage" | "blockId")[];
    constructor();
}
//# sourceMappingURL=base.d.ts.map