/**
 * WorldlineSelector — abstract base for worldline selector descriptors.
 *
 * A worldline selector specifies which worldline an observer projects.
 * Three variants: LiveSelector (canonical worldline),
 * CoordinateSelector (hypothetical worldline at specific writer tips),
 * StrandSelector (single writer's isolated worldline).
 *
 * @module domain/types/WorldlineSelector
 */
type WorldlineSelectorCtor = new (...args: never[]) => WorldlineSelector;
/**
 * Validates a ceiling value. Must be null, undefined, or a non-negative integer.
 */
declare function validateCeiling(ceiling: number | null | undefined): number | null;
/**
 * Abstract base for worldline selectors.
 *
 * Subclasses: LiveSelector, CoordinateSelector, StrandSelector.
 * Use WorldlineSelector.from() to convert plain { kind } objects
 * at API boundaries.
 */
declare class WorldlineSelector {
    /**
     * Deep-clone this selector.
     */
    clone(): WorldlineSelector;
    /**
     * Convert this selector to a plain DTO matching the WorldlineSource shape.
     */
    toDTO(): {
        kind: string;
        [key: string]: unknown;
    };
    /**
     * Register a subclass for use in from().
     */
    static _register(kind: string, ctor: WorldlineSelectorCtor): void;
    /**
     * Normalize a raw source descriptor into a WorldlineSelector instance.
     *
     * Accepts class instances (returned as-is), plain { kind } objects
     * (converted to the appropriate subclass), and null/undefined
     * (defaults to LiveSelector).
     */
    static from(raw: WorldlineSelector | {
        kind: string;
        [key: string]: unknown;
    } | null | undefined): WorldlineSelector;
}
export { validateCeiling };
export default WorldlineSelector;
