import { TimeGenerationOptions, TimeSegment, TimePeriod, TimeView } from "./time.interfaces";
/**
 * Time generator service interface
 * Generates time segments and views
 */
export interface ITimeGeneratorService {
    /**
     * Generate time view with all segments
     * @param options Generation options
     * @returns Complete time view
     */
    generateTimeView(options: TimeGenerationOptions): TimeView;
    /**
     * Generate hour segments
     * @param options Generation options
     * @returns Array of hour segments
     */
    generateHourSegments(options: TimeGenerationOptions): TimeSegment[];
    /**
     * Generate minute segments
     * @param options Generation options
     * @returns Array of minute segments
     */
    generateMinuteSegments(options: TimeGenerationOptions): TimeSegment[];
    /**
     * Generate second segments
     * @param options Generation options
     * @returns Array of second segments
     */
    generateSecondSegments(options: TimeGenerationOptions): TimeSegment[];
    /**
     * Generate millisecond segments
     * @param options Generation options
     * @returns Array of millisecond segments
     */
    generateMillisecondSegments(options: TimeGenerationOptions): TimeSegment[];
    /**
     * Generate period (AM/PM) for 12-hour format
     * @param options Generation options
     * @returns Period segment
     */
    generatePeriod(options: TimeGenerationOptions): TimePeriod | null;
    /**
     * Apply time step intervals
     * @param segments Input segments
     * @param step Step interval
     * @returns Filtered segments based on step
     */
    applyStep(segments: TimeSegment[], step: number): TimeSegment[];
}
