import type { StorageSkillType, StorageSkillSnapshotType, StorageResolvedSkillType, StorageCreateSkillInput, StorageUpdateSkillInput, StorageListSkillsInput, StorageListSkillsOutput, StorageListSkillsResolvedOutput } from '../../types.js';
import { VersionedStorageDomain } from '../versioned.js';
import type { VersionBase, CreateVersionInputBase, ListVersionsInputBase, ListVersionsOutputBase } from '../versioned.js';
/**
 * Represents a stored version of a skill's definition.
 * Definition fields are top-level on the version row (no nested snapshot object).
 */
export interface SkillVersion extends StorageSkillSnapshotType, VersionBase {
    /** ID of the skill this version belongs to */
    skillId: string;
}
/**
 * Input for creating a new skill version.
 * Definition fields are top-level (no nested snapshot object).
 */
export interface CreateSkillVersionInput extends StorageSkillSnapshotType, CreateVersionInputBase {
    /** ID of the skill this version belongs to */
    skillId: string;
}
/**
 * Sort direction for version listings.
 */
export type SkillVersionSortDirection = 'ASC' | 'DESC';
/**
 * Fields that can be used for ordering version listings.
 */
export type SkillVersionOrderBy = 'versionNumber' | 'createdAt';
/**
 * Input for listing skill versions with pagination and sorting.
 */
export interface ListSkillVersionsInput extends ListVersionsInputBase {
    /** ID of the skill to list versions for */
    skillId: string;
}
/**
 * Output for listing skill versions with pagination info.
 */
export interface ListSkillVersionsOutput extends ListVersionsOutputBase<SkillVersion> {
}
export declare abstract class SkillsStorage extends VersionedStorageDomain<StorageSkillType, StorageSkillSnapshotType, StorageResolvedSkillType, SkillVersion, CreateSkillVersionInput, ListSkillVersionsInput, ListSkillVersionsOutput, {
    skill: StorageCreateSkillInput;
}, StorageUpdateSkillInput, StorageListSkillsInput | undefined, StorageListSkillsOutput, StorageListSkillsResolvedOutput> {
    protected readonly listKey = "skills";
    protected readonly versionMetadataFields: ("createdAt" | "id" | "skillId" | "versionNumber" | "changedFields" | "changeMessage")[];
    constructor();
}
//# sourceMappingURL=base.d.ts.map