import type { AdminArea, DataQualityRating, DatasetStatus, DateRangeParams, Locality, PaginatedResponse, PaginationParams } from './common.js';
/**
 * Timetable dataset information
 */
export interface Timetable {
    /** Dataset ID */
    id: number;
    /** Creation timestamp */
    created: string;
    /** Last modified timestamp */
    modified: string;
    /** Operator name */
    operatorName: string;
    /** National Operator Codes */
    noc: string[];
    /** Dataset name */
    name: string;
    /** Dataset description */
    description: string;
    /** Comment about the dataset */
    comment: string;
    /** Dataset status */
    status: DatasetStatus;
    /** Download URL */
    url: string;
    /** File extension */
    extension: string;
    /** Service line numbers */
    lines: string[];
    /** First service start date */
    firstStartDate: string;
    /** First service end date */
    firstEndDate: string;
    /** Last service end date */
    lastEndDate: string;
    /** Administrative areas covered */
    adminAreas: AdminArea[];
    /** Localities covered */
    localities: Locality[];
    /** Data quality score */
    dqScore: string;
    /** Data quality rating */
    dqRag: DataQualityRating;
    /** BODS compliance status */
    bodsCompliance: boolean | null;
}
/**
 * Response structure for timetable queries
 */
export type TimetableResponse = PaginatedResponse<Timetable>;
/**
 * Parameters for searching timetables
 */
export interface TimetableSearchParams extends PaginationParams, DateRangeParams {
    /** Administrative area codes to filter by */
    adminArea?: string[];
    /** National Operator Codes to filter by */
    noc?: string[];
    /** Search text for name, description, operator, or admin area */
    search?: string;
    /** Dataset status to filter by */
    status?: DatasetStatus;
    /** Filter by end date range */
    endDateStart?: Date | string;
    endDateEnd?: Date | string;
    /** Filter by modification date */
    modifiedDate?: Date | string;
    /** Filter by start date range */
    startDateStart?: Date | string;
    startDateEnd?: Date | string;
    /** Filter by data quality rating */
    dqRag?: DataQualityRating;
    /** Filter by BODS compliance */
    bodsCompliance?: boolean;
}
//# sourceMappingURL=timetables.d.ts.map