import { Stop } from '../stops/stop.js';
import { z } from 'zod';
export declare const PatternDirectionValues: readonly ["outbound", "inbound"];
export declare const PatternDirectionSchema: z.ZodEnum<["outbound", "inbound"]>;
export type PatternDirection = z.infer<typeof PatternDirectionSchema>;
export declare const patternDirectionMapper: {
    fromGtfs: (value: "0" | "1") => "outbound" | "inbound";
    toGtfs: (value: "outbound" | "inbound") => "0" | "1";
};
export declare const directionOptions: {
    label: string;
    value: typeof PatternDirectionValues[number];
}[];
export declare const PathSchema: z.ZodObject<{
    _id: z.ZodString;
    allow_drop_off: z.ZodDefault<z.ZodBoolean>;
    allow_pickup: z.ZodDefault<z.ZodBoolean>;
    distance_delta: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
    stop_id: z.ZodNumber;
    timepoint: z.ZodDefault<z.ZodBoolean>;
    zones: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
    _id: string;
    stop_id: number;
    timepoint: boolean;
    allow_drop_off: boolean;
    allow_pickup: boolean;
    distance_delta: number | null;
    zones?: string[] | undefined;
}, {
    _id: string;
    stop_id: number;
    zones?: string[] | undefined;
    timepoint?: boolean | undefined;
    allow_drop_off?: boolean | undefined;
    allow_pickup?: boolean | undefined;
    distance_delta?: number | null | undefined;
}>;
export declare const ShapeSchema: z.ZodObject<{
    anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
        _id: z.ZodString;
        after_stop_id: z.ZodNumber;
        before_stop_id: z.ZodNumber;
        lat: z.ZodNumber;
        lon: z.ZodNumber;
        sequence: z.ZodDefault<z.ZodNumber>;
        type: z.ZodDefault<z.ZodEnum<["via", "through"]>>;
    }, "strip", z.ZodTypeAny, {
        _id: string;
        type: "via" | "through";
        after_stop_id: number;
        before_stop_id: number;
        lat: number;
        lon: number;
        sequence: number;
    }, {
        _id: string;
        after_stop_id: number;
        before_stop_id: number;
        lat: number;
        lon: number;
        type?: "via" | "through" | undefined;
        sequence?: number | undefined;
    }>, "many">>;
    encoded_polyline: z.ZodOptional<z.ZodString>;
    extension: z.ZodNumber;
    geojson: z.ZodObject<{
        geometry: z.ZodObject<{
            coordinates: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
            type: z.ZodDefault<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: string;
            coordinates: number[][];
        }, {
            coordinates: number[][];
            type?: string | undefined;
        }>;
        properties: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
        type: z.ZodDefault<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type: string;
        geometry: {
            type: string;
            coordinates: number[][];
        };
        properties?: {} | undefined;
    }, {
        geometry: {
            coordinates: number[][];
            type?: string | undefined;
        };
        type?: string | undefined;
        properties?: {} | undefined;
    }>;
    legs: z.ZodOptional<z.ZodArray<z.ZodObject<{
        distance: z.ZodNumber;
        duration: z.ZodNumber;
        encoded_polyline: z.ZodOptional<z.ZodString>;
        from_index: z.ZodNumber;
        geojson: z.ZodObject<{
            geometry: z.ZodObject<{
                coordinates: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
                type: z.ZodDefault<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                type: string;
                coordinates: number[][];
            }, {
                coordinates: number[][];
                type?: string | undefined;
            }>;
            properties: z.ZodObject<{
                distance: z.ZodNumber;
                duration: z.ZodNumber;
                from_index: z.ZodNumber;
                to_index: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                distance: number;
                duration: number;
                from_index: number;
                to_index: number;
            }, {
                distance: number;
                duration: number;
                from_index: number;
                to_index: number;
            }>;
            type: z.ZodDefault<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: string;
            properties: {
                distance: number;
                duration: number;
                from_index: number;
                to_index: number;
            };
            geometry: {
                type: string;
                coordinates: number[][];
            };
        }, {
            properties: {
                distance: number;
                duration: number;
                from_index: number;
                to_index: number;
            };
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
        }>;
        geometry: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
        to_index: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        geojson: {
            type: string;
            properties: {
                distance: number;
                duration: number;
                from_index: number;
                to_index: number;
            };
            geometry: {
                type: string;
                coordinates: number[][];
            };
        };
        distance: number;
        duration: number;
        from_index: number;
        geometry: [number, number][];
        to_index: number;
        encoded_polyline?: string | undefined;
    }, {
        geojson: {
            properties: {
                distance: number;
                duration: number;
                from_index: number;
                to_index: number;
            };
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
        };
        distance: number;
        duration: number;
        from_index: number;
        geometry: [number, number][];
        to_index: number;
        encoded_polyline?: string | undefined;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    geojson: {
        type: string;
        geometry: {
            type: string;
            coordinates: number[][];
        };
        properties?: {} | undefined;
    };
    extension: number;
    encoded_polyline?: string | undefined;
    anchors?: {
        _id: string;
        type: "via" | "through";
        after_stop_id: number;
        before_stop_id: number;
        lat: number;
        lon: number;
        sequence: number;
    }[] | undefined;
    legs?: {
        geojson: {
            type: string;
            properties: {
                distance: number;
                duration: number;
                from_index: number;
                to_index: number;
            };
            geometry: {
                type: string;
                coordinates: number[][];
            };
        };
        distance: number;
        duration: number;
        from_index: number;
        geometry: [number, number][];
        to_index: number;
        encoded_polyline?: string | undefined;
    }[] | undefined;
}, {
    geojson: {
        geometry: {
            coordinates: number[][];
            type?: string | undefined;
        };
        type?: string | undefined;
        properties?: {} | undefined;
    };
    extension: number;
    encoded_polyline?: string | undefined;
    anchors?: {
        _id: string;
        after_stop_id: number;
        before_stop_id: number;
        lat: number;
        lon: number;
        type?: "via" | "through" | undefined;
        sequence?: number | undefined;
    }[] | undefined;
    legs?: {
        geojson: {
            properties: {
                distance: number;
                duration: number;
                from_index: number;
                to_index: number;
            };
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
        };
        distance: number;
        duration: number;
        from_index: number;
        geometry: [number, number][];
        to_index: number;
        encoded_polyline?: string | undefined;
    }[] | undefined;
}>;
export declare const PatternSchema: z.ZodObject<{
    _id: z.ZodString;
    created_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
    created_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
    updated_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
    updated_by: z.ZodOptional<z.ZodString>;
} & {
    code: z.ZodString;
    comments: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        message: z.ZodString;
        type: z.ZodLiteral<"note">;
        _id: z.ZodOptional<z.ZodString>;
        created_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        created_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        updated_by: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        message: string;
        type: "note";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        _id?: string | undefined;
        updated_by?: string | undefined;
    }, {
        message: string;
        type: "note";
        created_at: number;
        updated_at: number;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"field_changed">;
        _id: z.ZodOptional<z.ZodString>;
        created_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        created_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        updated_by: z.ZodOptional<z.ZodString>;
        curr_value: z.ZodAny;
        field: z.ZodString;
        prev_value: z.ZodAny;
        metadata: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            changes: z.ZodOptional<z.ZodArray<z.ZodObject<{
                curr_value: z.ZodAny;
                field: z.ZodString;
                prev_value: z.ZodAny;
            }, "strip", z.ZodTypeAny, {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }, {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }>, "many">>;
        }, "strip", z.ZodTypeAny, {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        }, {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        type: "field_changed";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        field: string;
        _id?: string | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    }, {
        type: "field_changed";
        created_at: number;
        updated_at: number;
        field: string;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"crud">;
        _id: z.ZodOptional<z.ZodString>;
        created_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        created_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        updated_by: z.ZodOptional<z.ZodString>;
        action: z.ZodEnum<["create", "update", "delete", "archive", "restore"]>;
    }, "strip", z.ZodTypeAny, {
        type: "crud";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        updated_by?: string | undefined;
    }, {
        type: "crud";
        created_at: number;
        updated_at: number;
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    }>]>, {
        message: string;
        type: "note";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        _id?: string | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        field: string;
        _id?: string | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        updated_by?: string | undefined;
    }, {
        message: string;
        type: "note";
        created_at: number;
        updated_at: number;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number;
        updated_at: number;
        field: string;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number;
        updated_at: number;
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    }>, "many">>>;
    destination: z.ZodString;
    direction: z.ZodDefault<z.ZodEnum<["outbound", "inbound"]>>;
    headsign: z.ZodString;
    is_locked: z.ZodDefault<z.ZodBoolean>;
    line_id: z.ZodString;
    origin: z.ZodString;
    parameters: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        _id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        path: z.ZodArray<z.ZodObject<{
            avg_speed: z.ZodNumber;
            dwell_time: z.ZodNumber;
            stop_id: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }>, "many">;
        vehicle_type: z.ZodOptional<z.ZodString>;
    } & {
        kind: z.ZodLiteral<"default">;
    }, "strip", z.ZodTypeAny, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    }, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    }>, z.ZodObject<{
        _id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        path: z.ZodArray<z.ZodObject<{
            avg_speed: z.ZodNumber;
            dwell_time: z.ZodNumber;
            stop_id: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }>, "many">;
        vehicle_type: z.ZodOptional<z.ZodString>;
    } & {
        day_periods: z.ZodOptional<z.ZodArray<z.ZodEnum<["PPM", "CD", "PPT", "N", "M"]>, "many">>;
        kind: z.ZodLiteral<"override">;
        weekdays: z.ZodArray<z.ZodNativeEnum<{
            readonly Fri: 5;
            readonly Mon: 1;
            readonly Sat: 6;
            readonly Sun: 7;
            readonly Thu: 4;
            readonly Tue: 2;
            readonly Wed: 3;
        }>, "many">;
        year_period_ids: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    }, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    }>]>, "many">, ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[], ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[]>>;
    path: z.ZodOptional<z.ZodArray<z.ZodObject<{
        _id: z.ZodString;
        allow_drop_off: z.ZodDefault<z.ZodBoolean>;
        allow_pickup: z.ZodDefault<z.ZodBoolean>;
        distance_delta: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
        stop_id: z.ZodNumber;
        timepoint: z.ZodDefault<z.ZodBoolean>;
        zones: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        _id: string;
        stop_id: number;
        timepoint: boolean;
        allow_drop_off: boolean;
        allow_pickup: boolean;
        distance_delta: number | null;
        zones?: string[] | undefined;
    }, {
        _id: string;
        stop_id: number;
        zones?: string[] | undefined;
        timepoint?: boolean | undefined;
        allow_drop_off?: boolean | undefined;
        allow_pickup?: boolean | undefined;
        distance_delta?: number | null | undefined;
    }>, "many">>;
    route_id: z.ZodString;
    rules: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        _id: z.ZodString;
        event_id: z.ZodOptional<z.ZodString>;
        kind: z.ZodLiteral<"manual">;
        months: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<{
            readonly Apr: 4;
            readonly Aug: 8;
            readonly Dec: 12;
            readonly Feb: 2;
            readonly Jan: 1;
            readonly Jul: 7;
            readonly Jun: 6;
            readonly Mar: 3;
            readonly May: 5;
            readonly Nov: 11;
            readonly Oct: 10;
            readonly Sep: 9;
        }>, "many">>;
        name: z.ZodOptional<z.ZodString>;
        operating_mode: z.ZodEnum<["exclude", "include"]>;
        timepoints: z.ZodArray<z.ZodBranded<z.ZodEffects<z.ZodString, string, string>, "HHMM">, "many">;
        weekdays: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<{
            readonly Fri: 5;
            readonly Mon: 1;
            readonly Sat: 6;
            readonly Sun: 7;
            readonly Thu: 4;
            readonly Tue: 2;
            readonly Wed: 3;
        }>, "many">>;
        year_period_ids: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: (string & z.BRAND<"HHMM">)[];
        year_period_ids: string[];
        name?: string | undefined;
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    }, {
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: string[];
        year_period_ids: string[];
        name?: string | undefined;
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    }>, z.ZodObject<{
        _id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        dates: z.ZodArray<z.ZodEffects<z.ZodString, import("@tmlmobilidade/go-types-shared").OperationalDate, string>, "many">;
        lines_mode: z.ZodEnum<["all", "exclude", "include"]>;
        lines_to_exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        lines_to_include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        timepoints: z.ZodOptional<z.ZodArray<z.ZodBranded<z.ZodEffects<z.ZodString, string, string>, "HHMM">, "many">>;
    } & {
        all_day: z.ZodBoolean;
        end_time: z.ZodDefault<z.ZodBranded<z.ZodEffects<z.ZodString, string, string>, "HHMM">>;
        start_time: z.ZodDefault<z.ZodBranded<z.ZodEffects<z.ZodString, string, string>, "HHMM">>;
        event: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            title: string;
            id: string;
        }, {
            title: string;
            id: string;
        }>;
        kind: z.ZodLiteral<"event_restriction">;
    }, "strip", z.ZodTypeAny, {
        event: {
            title: string;
            id: string;
        };
        dates: import("@tmlmobilidade/go-types-shared").OperationalDate[];
        kind: "event_restriction";
        lines_mode: "exclude" | "include" | "all";
        all_day: boolean;
        end_time: string & z.BRAND<"HHMM">;
        start_time: string & z.BRAND<"HHMM">;
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: (string & z.BRAND<"HHMM">)[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
    }, {
        event: {
            title: string;
            id: string;
        };
        dates: string[];
        kind: "event_restriction";
        lines_mode: "exclude" | "include" | "all";
        all_day: boolean;
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: string[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        end_time?: string | undefined;
        start_time?: string | undefined;
    }>, z.ZodObject<{
        _id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        dates: z.ZodArray<z.ZodEffects<z.ZodString, import("@tmlmobilidade/go-types-shared").OperationalDate, string>, "many">;
        lines_mode: z.ZodEnum<["all", "exclude", "include"]>;
        lines_to_exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        lines_to_include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        timepoints: z.ZodOptional<z.ZodArray<z.ZodBranded<z.ZodEffects<z.ZodString, string, string>, "HHMM">, "many">>;
    } & {
        event: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            title: string;
            id: string;
        }, {
            title: string;
            id: string;
        }>;
        kind: z.ZodLiteral<"event_replacement">;
        same_weekday: z.ZodOptional<z.ZodBoolean>;
        weekdays: z.ZodArray<z.ZodNativeEnum<{
            readonly Fri: 5;
            readonly Mon: 1;
            readonly Sat: 6;
            readonly Sun: 7;
            readonly Thu: 4;
            readonly Tue: 2;
            readonly Wed: 3;
        }>, "many">;
        year_period_ids: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        event: {
            title: string;
            id: string;
        };
        dates: import("@tmlmobilidade/go-types-shared").OperationalDate[];
        kind: "event_replacement";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        lines_mode: "exclude" | "include" | "all";
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: (string & z.BRAND<"HHMM">)[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        same_weekday?: boolean | undefined;
    }, {
        event: {
            title: string;
            id: string;
        };
        dates: string[];
        kind: "event_replacement";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        lines_mode: "exclude" | "include" | "all";
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: string[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        same_weekday?: boolean | undefined;
    }>]>, "many">>>;
    shape: z.ZodOptional<z.ZodObject<{
        anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
            _id: z.ZodString;
            after_stop_id: z.ZodNumber;
            before_stop_id: z.ZodNumber;
            lat: z.ZodNumber;
            lon: z.ZodNumber;
            sequence: z.ZodDefault<z.ZodNumber>;
            type: z.ZodDefault<z.ZodEnum<["via", "through"]>>;
        }, "strip", z.ZodTypeAny, {
            _id: string;
            type: "via" | "through";
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            sequence: number;
        }, {
            _id: string;
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            type?: "via" | "through" | undefined;
            sequence?: number | undefined;
        }>, "many">>;
        encoded_polyline: z.ZodOptional<z.ZodString>;
        extension: z.ZodNumber;
        geojson: z.ZodObject<{
            geometry: z.ZodObject<{
                coordinates: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
                type: z.ZodDefault<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                type: string;
                coordinates: number[][];
            }, {
                coordinates: number[][];
                type?: string | undefined;
            }>;
            properties: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
            type: z.ZodDefault<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: string;
            geometry: {
                type: string;
                coordinates: number[][];
            };
            properties?: {} | undefined;
        }, {
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
            properties?: {} | undefined;
        }>;
        legs: z.ZodOptional<z.ZodArray<z.ZodObject<{
            distance: z.ZodNumber;
            duration: z.ZodNumber;
            encoded_polyline: z.ZodOptional<z.ZodString>;
            from_index: z.ZodNumber;
            geojson: z.ZodObject<{
                geometry: z.ZodObject<{
                    coordinates: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
                    type: z.ZodDefault<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    type: string;
                    coordinates: number[][];
                }, {
                    coordinates: number[][];
                    type?: string | undefined;
                }>;
                properties: z.ZodObject<{
                    distance: z.ZodNumber;
                    duration: z.ZodNumber;
                    from_index: z.ZodNumber;
                    to_index: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                }, {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                }>;
                type: z.ZodDefault<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            }, {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            }>;
            geometry: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
            to_index: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            geojson: {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }, {
            geojson: {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        geojson: {
            type: string;
            geometry: {
                type: string;
                coordinates: number[][];
            };
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            type: "via" | "through";
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            sequence: number;
        }[] | undefined;
        legs?: {
            geojson: {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    }, {
        geojson: {
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            type?: "via" | "through" | undefined;
            sequence?: number | undefined;
        }[] | undefined;
        legs?: {
            geojson: {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    _id: string;
    created_at: number & {
        __brand: "UnixTimestamp";
    };
    created_by: string | null;
    is_locked: boolean;
    updated_at: number & {
        __brand: "UnixTimestamp";
    };
    code: string;
    rules: ({
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: (string & z.BRAND<"HHMM">)[];
        year_period_ids: string[];
        name?: string | undefined;
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    } | {
        event: {
            title: string;
            id: string;
        };
        dates: import("@tmlmobilidade/go-types-shared").OperationalDate[];
        kind: "event_restriction";
        lines_mode: "exclude" | "include" | "all";
        all_day: boolean;
        end_time: string & z.BRAND<"HHMM">;
        start_time: string & z.BRAND<"HHMM">;
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: (string & z.BRAND<"HHMM">)[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
    } | {
        event: {
            title: string;
            id: string;
        };
        dates: import("@tmlmobilidade/go-types-shared").OperationalDate[];
        kind: "event_replacement";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        lines_mode: "exclude" | "include" | "all";
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: (string & z.BRAND<"HHMM">)[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        same_weekday?: boolean | undefined;
    })[];
    headsign: string;
    line_id: string;
    route_id: string;
    comments: ({
        message: string;
        type: "note";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        _id?: string | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        field: string;
        _id?: string | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        updated_by?: string | undefined;
    })[];
    destination: string;
    direction: "outbound" | "inbound";
    origin: string;
    updated_by?: string | undefined;
    path?: {
        _id: string;
        stop_id: number;
        timepoint: boolean;
        allow_drop_off: boolean;
        allow_pickup: boolean;
        distance_delta: number | null;
        zones?: string[] | undefined;
    }[] | undefined;
    shape?: {
        geojson: {
            type: string;
            geometry: {
                type: string;
                coordinates: number[][];
            };
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            type: "via" | "through";
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            sequence: number;
        }[] | undefined;
        legs?: {
            geojson: {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    } | undefined;
    parameters?: ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[] | undefined;
}, {
    _id: string;
    created_at: number;
    updated_at: number;
    code: string;
    headsign: string;
    line_id: string;
    route_id: string;
    destination: string;
    origin: string;
    created_by?: string | null | undefined;
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    path?: {
        _id: string;
        stop_id: number;
        zones?: string[] | undefined;
        timepoint?: boolean | undefined;
        allow_drop_off?: boolean | undefined;
        allow_pickup?: boolean | undefined;
        distance_delta?: number | null | undefined;
    }[] | undefined;
    shape?: {
        geojson: {
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            type?: "via" | "through" | undefined;
            sequence?: number | undefined;
        }[] | undefined;
        legs?: {
            geojson: {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    } | undefined;
    rules?: ({
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: string[];
        year_period_ids: string[];
        name?: string | undefined;
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    } | {
        event: {
            title: string;
            id: string;
        };
        dates: string[];
        kind: "event_restriction";
        lines_mode: "exclude" | "include" | "all";
        all_day: boolean;
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: string[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        end_time?: string | undefined;
        start_time?: string | undefined;
    } | {
        event: {
            title: string;
            id: string;
        };
        dates: string[];
        kind: "event_replacement";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        lines_mode: "exclude" | "include" | "all";
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: string[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        same_weekday?: boolean | undefined;
    })[] | undefined;
    comments?: ({
        message: string;
        type: "note";
        created_at: number;
        updated_at: number;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number;
        updated_at: number;
        field: string;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number;
        updated_at: number;
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    })[] | undefined;
    direction?: "outbound" | "inbound" | undefined;
    parameters?: ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[] | undefined;
}>;
export declare const PatternSimplifiedSchema: z.ZodObject<{
    _id: z.ZodString;
    code: z.ZodString;
    headsign: z.ZodString;
    line_id: z.ZodString;
    route_id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    _id: string;
    code: string;
    headsign: string;
    line_id: string;
    route_id: string;
}, {
    _id: string;
    code: string;
    headsign: string;
    line_id: string;
    route_id: string;
}>;
export declare const PatternShapeMapItemSchema: z.ZodObject<{
    agency_id: z.ZodString;
    color: z.ZodString;
    destination: z.ZodString;
    encoded_polyline: z.ZodString;
    headsign: z.ZodString;
    line_code: z.ZodString;
    line_id: z.ZodString;
    line_name: z.ZodString;
    line_text_color: z.ZodString;
    origin: z.ZodString;
    pattern_code: z.ZodString;
    pattern_id: z.ZodString;
    route_id: z.ZodString;
}, "strip", z.ZodTypeAny, {
    agency_id: string;
    color: string;
    headsign: string;
    line_id: string;
    route_id: string;
    pattern_id: string;
    encoded_polyline: string;
    destination: string;
    origin: string;
    line_code: string;
    line_name: string;
    line_text_color: string;
    pattern_code: string;
}, {
    agency_id: string;
    color: string;
    headsign: string;
    line_id: string;
    route_id: string;
    pattern_id: string;
    encoded_polyline: string;
    destination: string;
    origin: string;
    line_code: string;
    line_name: string;
    line_text_color: string;
    pattern_code: string;
}>;
export declare const CreatePatternSchema: z.ZodObject<Omit<{
    _id: z.ZodString;
    created_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
    created_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
    updated_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
    updated_by: z.ZodOptional<z.ZodString>;
} & {
    code: z.ZodString;
    comments: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        message: z.ZodString;
        type: z.ZodLiteral<"note">;
        _id: z.ZodOptional<z.ZodString>;
        created_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        created_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        updated_by: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        message: string;
        type: "note";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        _id?: string | undefined;
        updated_by?: string | undefined;
    }, {
        message: string;
        type: "note";
        created_at: number;
        updated_at: number;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"field_changed">;
        _id: z.ZodOptional<z.ZodString>;
        created_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        created_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        updated_by: z.ZodOptional<z.ZodString>;
        curr_value: z.ZodAny;
        field: z.ZodString;
        prev_value: z.ZodAny;
        metadata: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            changes: z.ZodOptional<z.ZodArray<z.ZodObject<{
                curr_value: z.ZodAny;
                field: z.ZodString;
                prev_value: z.ZodAny;
            }, "strip", z.ZodTypeAny, {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }, {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }>, "many">>;
        }, "strip", z.ZodTypeAny, {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        }, {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        type: "field_changed";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        field: string;
        _id?: string | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    }, {
        type: "field_changed";
        created_at: number;
        updated_at: number;
        field: string;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"crud">;
        _id: z.ZodOptional<z.ZodString>;
        created_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        created_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        updated_by: z.ZodOptional<z.ZodString>;
        action: z.ZodEnum<["create", "update", "delete", "archive", "restore"]>;
    }, "strip", z.ZodTypeAny, {
        type: "crud";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        updated_by?: string | undefined;
    }, {
        type: "crud";
        created_at: number;
        updated_at: number;
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    }>]>, {
        message: string;
        type: "note";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        _id?: string | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        field: string;
        _id?: string | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        updated_by?: string | undefined;
    }, {
        message: string;
        type: "note";
        created_at: number;
        updated_at: number;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number;
        updated_at: number;
        field: string;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number;
        updated_at: number;
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    }>, "many">>>;
    destination: z.ZodString;
    direction: z.ZodDefault<z.ZodEnum<["outbound", "inbound"]>>;
    headsign: z.ZodString;
    is_locked: z.ZodDefault<z.ZodBoolean>;
    line_id: z.ZodString;
    origin: z.ZodString;
    parameters: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        _id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        path: z.ZodArray<z.ZodObject<{
            avg_speed: z.ZodNumber;
            dwell_time: z.ZodNumber;
            stop_id: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }>, "many">;
        vehicle_type: z.ZodOptional<z.ZodString>;
    } & {
        kind: z.ZodLiteral<"default">;
    }, "strip", z.ZodTypeAny, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    }, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    }>, z.ZodObject<{
        _id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        path: z.ZodArray<z.ZodObject<{
            avg_speed: z.ZodNumber;
            dwell_time: z.ZodNumber;
            stop_id: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }>, "many">;
        vehicle_type: z.ZodOptional<z.ZodString>;
    } & {
        day_periods: z.ZodOptional<z.ZodArray<z.ZodEnum<["PPM", "CD", "PPT", "N", "M"]>, "many">>;
        kind: z.ZodLiteral<"override">;
        weekdays: z.ZodArray<z.ZodNativeEnum<{
            readonly Fri: 5;
            readonly Mon: 1;
            readonly Sat: 6;
            readonly Sun: 7;
            readonly Thu: 4;
            readonly Tue: 2;
            readonly Wed: 3;
        }>, "many">;
        year_period_ids: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    }, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    }>]>, "many">, ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[], ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[]>>;
    path: z.ZodOptional<z.ZodArray<z.ZodObject<{
        _id: z.ZodString;
        allow_drop_off: z.ZodDefault<z.ZodBoolean>;
        allow_pickup: z.ZodDefault<z.ZodBoolean>;
        distance_delta: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
        stop_id: z.ZodNumber;
        timepoint: z.ZodDefault<z.ZodBoolean>;
        zones: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        _id: string;
        stop_id: number;
        timepoint: boolean;
        allow_drop_off: boolean;
        allow_pickup: boolean;
        distance_delta: number | null;
        zones?: string[] | undefined;
    }, {
        _id: string;
        stop_id: number;
        zones?: string[] | undefined;
        timepoint?: boolean | undefined;
        allow_drop_off?: boolean | undefined;
        allow_pickup?: boolean | undefined;
        distance_delta?: number | null | undefined;
    }>, "many">>;
    route_id: z.ZodString;
    rules: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        _id: z.ZodString;
        event_id: z.ZodOptional<z.ZodString>;
        kind: z.ZodLiteral<"manual">;
        months: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<{
            readonly Apr: 4;
            readonly Aug: 8;
            readonly Dec: 12;
            readonly Feb: 2;
            readonly Jan: 1;
            readonly Jul: 7;
            readonly Jun: 6;
            readonly Mar: 3;
            readonly May: 5;
            readonly Nov: 11;
            readonly Oct: 10;
            readonly Sep: 9;
        }>, "many">>;
        name: z.ZodOptional<z.ZodString>;
        operating_mode: z.ZodEnum<["exclude", "include"]>;
        timepoints: z.ZodArray<z.ZodBranded<z.ZodEffects<z.ZodString, string, string>, "HHMM">, "many">;
        weekdays: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<{
            readonly Fri: 5;
            readonly Mon: 1;
            readonly Sat: 6;
            readonly Sun: 7;
            readonly Thu: 4;
            readonly Tue: 2;
            readonly Wed: 3;
        }>, "many">>;
        year_period_ids: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: (string & z.BRAND<"HHMM">)[];
        year_period_ids: string[];
        name?: string | undefined;
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    }, {
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: string[];
        year_period_ids: string[];
        name?: string | undefined;
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    }>, z.ZodObject<{
        _id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        dates: z.ZodArray<z.ZodEffects<z.ZodString, import("@tmlmobilidade/go-types-shared").OperationalDate, string>, "many">;
        lines_mode: z.ZodEnum<["all", "exclude", "include"]>;
        lines_to_exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        lines_to_include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        timepoints: z.ZodOptional<z.ZodArray<z.ZodBranded<z.ZodEffects<z.ZodString, string, string>, "HHMM">, "many">>;
    } & {
        all_day: z.ZodBoolean;
        end_time: z.ZodDefault<z.ZodBranded<z.ZodEffects<z.ZodString, string, string>, "HHMM">>;
        start_time: z.ZodDefault<z.ZodBranded<z.ZodEffects<z.ZodString, string, string>, "HHMM">>;
        event: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            title: string;
            id: string;
        }, {
            title: string;
            id: string;
        }>;
        kind: z.ZodLiteral<"event_restriction">;
    }, "strip", z.ZodTypeAny, {
        event: {
            title: string;
            id: string;
        };
        dates: import("@tmlmobilidade/go-types-shared").OperationalDate[];
        kind: "event_restriction";
        lines_mode: "exclude" | "include" | "all";
        all_day: boolean;
        end_time: string & z.BRAND<"HHMM">;
        start_time: string & z.BRAND<"HHMM">;
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: (string & z.BRAND<"HHMM">)[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
    }, {
        event: {
            title: string;
            id: string;
        };
        dates: string[];
        kind: "event_restriction";
        lines_mode: "exclude" | "include" | "all";
        all_day: boolean;
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: string[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        end_time?: string | undefined;
        start_time?: string | undefined;
    }>, z.ZodObject<{
        _id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        dates: z.ZodArray<z.ZodEffects<z.ZodString, import("@tmlmobilidade/go-types-shared").OperationalDate, string>, "many">;
        lines_mode: z.ZodEnum<["all", "exclude", "include"]>;
        lines_to_exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        lines_to_include: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        timepoints: z.ZodOptional<z.ZodArray<z.ZodBranded<z.ZodEffects<z.ZodString, string, string>, "HHMM">, "many">>;
    } & {
        event: z.ZodObject<{
            id: z.ZodString;
            title: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            title: string;
            id: string;
        }, {
            title: string;
            id: string;
        }>;
        kind: z.ZodLiteral<"event_replacement">;
        same_weekday: z.ZodOptional<z.ZodBoolean>;
        weekdays: z.ZodArray<z.ZodNativeEnum<{
            readonly Fri: 5;
            readonly Mon: 1;
            readonly Sat: 6;
            readonly Sun: 7;
            readonly Thu: 4;
            readonly Tue: 2;
            readonly Wed: 3;
        }>, "many">;
        year_period_ids: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        event: {
            title: string;
            id: string;
        };
        dates: import("@tmlmobilidade/go-types-shared").OperationalDate[];
        kind: "event_replacement";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        lines_mode: "exclude" | "include" | "all";
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: (string & z.BRAND<"HHMM">)[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        same_weekday?: boolean | undefined;
    }, {
        event: {
            title: string;
            id: string;
        };
        dates: string[];
        kind: "event_replacement";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        lines_mode: "exclude" | "include" | "all";
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: string[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        same_weekday?: boolean | undefined;
    }>]>, "many">>>;
    shape: z.ZodOptional<z.ZodObject<{
        anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
            _id: z.ZodString;
            after_stop_id: z.ZodNumber;
            before_stop_id: z.ZodNumber;
            lat: z.ZodNumber;
            lon: z.ZodNumber;
            sequence: z.ZodDefault<z.ZodNumber>;
            type: z.ZodDefault<z.ZodEnum<["via", "through"]>>;
        }, "strip", z.ZodTypeAny, {
            _id: string;
            type: "via" | "through";
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            sequence: number;
        }, {
            _id: string;
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            type?: "via" | "through" | undefined;
            sequence?: number | undefined;
        }>, "many">>;
        encoded_polyline: z.ZodOptional<z.ZodString>;
        extension: z.ZodNumber;
        geojson: z.ZodObject<{
            geometry: z.ZodObject<{
                coordinates: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
                type: z.ZodDefault<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                type: string;
                coordinates: number[][];
            }, {
                coordinates: number[][];
                type?: string | undefined;
            }>;
            properties: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
            type: z.ZodDefault<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: string;
            geometry: {
                type: string;
                coordinates: number[][];
            };
            properties?: {} | undefined;
        }, {
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
            properties?: {} | undefined;
        }>;
        legs: z.ZodOptional<z.ZodArray<z.ZodObject<{
            distance: z.ZodNumber;
            duration: z.ZodNumber;
            encoded_polyline: z.ZodOptional<z.ZodString>;
            from_index: z.ZodNumber;
            geojson: z.ZodObject<{
                geometry: z.ZodObject<{
                    coordinates: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
                    type: z.ZodDefault<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    type: string;
                    coordinates: number[][];
                }, {
                    coordinates: number[][];
                    type?: string | undefined;
                }>;
                properties: z.ZodObject<{
                    distance: z.ZodNumber;
                    duration: z.ZodNumber;
                    from_index: z.ZodNumber;
                    to_index: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                }, {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                }>;
                type: z.ZodDefault<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            }, {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            }>;
            geometry: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
            to_index: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            geojson: {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }, {
            geojson: {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        geojson: {
            type: string;
            geometry: {
                type: string;
                coordinates: number[][];
            };
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            type: "via" | "through";
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            sequence: number;
        }[] | undefined;
        legs?: {
            geojson: {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    }, {
        geojson: {
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            type?: "via" | "through" | undefined;
            sequence?: number | undefined;
        }[] | undefined;
        legs?: {
            geojson: {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    }>>;
}, "_id" | "created_at" | "updated_at">, "strip", z.ZodTypeAny, {
    created_by: string | null;
    is_locked: boolean;
    code: string;
    rules: ({
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: (string & z.BRAND<"HHMM">)[];
        year_period_ids: string[];
        name?: string | undefined;
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    } | {
        event: {
            title: string;
            id: string;
        };
        dates: import("@tmlmobilidade/go-types-shared").OperationalDate[];
        kind: "event_restriction";
        lines_mode: "exclude" | "include" | "all";
        all_day: boolean;
        end_time: string & z.BRAND<"HHMM">;
        start_time: string & z.BRAND<"HHMM">;
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: (string & z.BRAND<"HHMM">)[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
    } | {
        event: {
            title: string;
            id: string;
        };
        dates: import("@tmlmobilidade/go-types-shared").OperationalDate[];
        kind: "event_replacement";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        lines_mode: "exclude" | "include" | "all";
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: (string & z.BRAND<"HHMM">)[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        same_weekday?: boolean | undefined;
    })[];
    headsign: string;
    line_id: string;
    route_id: string;
    comments: ({
        message: string;
        type: "note";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        _id?: string | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        field: string;
        _id?: string | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        updated_by?: string | undefined;
    })[];
    destination: string;
    direction: "outbound" | "inbound";
    origin: string;
    updated_by?: string | undefined;
    path?: {
        _id: string;
        stop_id: number;
        timepoint: boolean;
        allow_drop_off: boolean;
        allow_pickup: boolean;
        distance_delta: number | null;
        zones?: string[] | undefined;
    }[] | undefined;
    shape?: {
        geojson: {
            type: string;
            geometry: {
                type: string;
                coordinates: number[][];
            };
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            type: "via" | "through";
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            sequence: number;
        }[] | undefined;
        legs?: {
            geojson: {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    } | undefined;
    parameters?: ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[] | undefined;
}, {
    code: string;
    headsign: string;
    line_id: string;
    route_id: string;
    destination: string;
    origin: string;
    created_by?: string | null | undefined;
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    path?: {
        _id: string;
        stop_id: number;
        zones?: string[] | undefined;
        timepoint?: boolean | undefined;
        allow_drop_off?: boolean | undefined;
        allow_pickup?: boolean | undefined;
        distance_delta?: number | null | undefined;
    }[] | undefined;
    shape?: {
        geojson: {
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            type?: "via" | "through" | undefined;
            sequence?: number | undefined;
        }[] | undefined;
        legs?: {
            geojson: {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    } | undefined;
    rules?: ({
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: string[];
        year_period_ids: string[];
        name?: string | undefined;
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    } | {
        event: {
            title: string;
            id: string;
        };
        dates: string[];
        kind: "event_restriction";
        lines_mode: "exclude" | "include" | "all";
        all_day: boolean;
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: string[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        end_time?: string | undefined;
        start_time?: string | undefined;
    } | {
        event: {
            title: string;
            id: string;
        };
        dates: string[];
        kind: "event_replacement";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        lines_mode: "exclude" | "include" | "all";
        _id?: string | undefined;
        name?: string | undefined;
        timepoints?: string[] | undefined;
        lines_to_exclude?: string[] | undefined;
        lines_to_include?: string[] | undefined;
        same_weekday?: boolean | undefined;
    })[] | undefined;
    comments?: ({
        message: string;
        type: "note";
        created_at: number;
        updated_at: number;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number;
        updated_at: number;
        field: string;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number;
        updated_at: number;
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    })[] | undefined;
    direction?: "outbound" | "inbound" | undefined;
    parameters?: ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[] | undefined;
}>;
export declare const UpdatePatternSchema: z.ZodObject<{
    is_locked: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    updated_by: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    code: z.ZodOptional<z.ZodString>;
    path: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodObject<{
        _id: z.ZodString;
        allow_drop_off: z.ZodDefault<z.ZodBoolean>;
        allow_pickup: z.ZodDefault<z.ZodBoolean>;
        distance_delta: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
        stop_id: z.ZodNumber;
        timepoint: z.ZodDefault<z.ZodBoolean>;
        zones: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        _id: string;
        stop_id: number;
        timepoint: boolean;
        allow_drop_off: boolean;
        allow_pickup: boolean;
        distance_delta: number | null;
        zones?: string[] | undefined;
    }, {
        _id: string;
        stop_id: number;
        zones?: string[] | undefined;
        timepoint?: boolean | undefined;
        allow_drop_off?: boolean | undefined;
        allow_pickup?: boolean | undefined;
        distance_delta?: number | null | undefined;
    }>, "many">>>;
    shape: z.ZodOptional<z.ZodOptional<z.ZodObject<{
        anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
            _id: z.ZodString;
            after_stop_id: z.ZodNumber;
            before_stop_id: z.ZodNumber;
            lat: z.ZodNumber;
            lon: z.ZodNumber;
            sequence: z.ZodDefault<z.ZodNumber>;
            type: z.ZodDefault<z.ZodEnum<["via", "through"]>>;
        }, "strip", z.ZodTypeAny, {
            _id: string;
            type: "via" | "through";
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            sequence: number;
        }, {
            _id: string;
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            type?: "via" | "through" | undefined;
            sequence?: number | undefined;
        }>, "many">>;
        encoded_polyline: z.ZodOptional<z.ZodString>;
        extension: z.ZodNumber;
        geojson: z.ZodObject<{
            geometry: z.ZodObject<{
                coordinates: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
                type: z.ZodDefault<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                type: string;
                coordinates: number[][];
            }, {
                coordinates: number[][];
                type?: string | undefined;
            }>;
            properties: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
            type: z.ZodDefault<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: string;
            geometry: {
                type: string;
                coordinates: number[][];
            };
            properties?: {} | undefined;
        }, {
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
            properties?: {} | undefined;
        }>;
        legs: z.ZodOptional<z.ZodArray<z.ZodObject<{
            distance: z.ZodNumber;
            duration: z.ZodNumber;
            encoded_polyline: z.ZodOptional<z.ZodString>;
            from_index: z.ZodNumber;
            geojson: z.ZodObject<{
                geometry: z.ZodObject<{
                    coordinates: z.ZodArray<z.ZodArray<z.ZodNumber, "many">, "many">;
                    type: z.ZodDefault<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    type: string;
                    coordinates: number[][];
                }, {
                    coordinates: number[][];
                    type?: string | undefined;
                }>;
                properties: z.ZodObject<{
                    distance: z.ZodNumber;
                    duration: z.ZodNumber;
                    from_index: z.ZodNumber;
                    to_index: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                }, {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                }>;
                type: z.ZodDefault<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            }, {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            }>;
            geometry: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
            to_index: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            geojson: {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }, {
            geojson: {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        geojson: {
            type: string;
            geometry: {
                type: string;
                coordinates: number[][];
            };
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            type: "via" | "through";
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            sequence: number;
        }[] | undefined;
        legs?: {
            geojson: {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    }, {
        geojson: {
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            type?: "via" | "through" | undefined;
            sequence?: number | undefined;
        }[] | undefined;
        legs?: {
            geojson: {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    }>>>;
    headsign: z.ZodOptional<z.ZodString>;
    line_id: z.ZodOptional<z.ZodString>;
    route_id: z.ZodOptional<z.ZodString>;
    comments: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        message: z.ZodString;
        type: z.ZodLiteral<"note">;
        _id: z.ZodOptional<z.ZodString>;
        created_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        created_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        updated_by: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        message: string;
        type: "note";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        _id?: string | undefined;
        updated_by?: string | undefined;
    }, {
        message: string;
        type: "note";
        created_at: number;
        updated_at: number;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"field_changed">;
        _id: z.ZodOptional<z.ZodString>;
        created_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        created_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        updated_by: z.ZodOptional<z.ZodString>;
        curr_value: z.ZodAny;
        field: z.ZodString;
        prev_value: z.ZodAny;
        metadata: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            changes: z.ZodOptional<z.ZodArray<z.ZodObject<{
                curr_value: z.ZodAny;
                field: z.ZodString;
                prev_value: z.ZodAny;
            }, "strip", z.ZodTypeAny, {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }, {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }>, "many">>;
        }, "strip", z.ZodTypeAny, {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        }, {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        type: "field_changed";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        field: string;
        _id?: string | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    }, {
        type: "field_changed";
        created_at: number;
        updated_at: number;
        field: string;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"crud">;
        _id: z.ZodOptional<z.ZodString>;
        created_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        created_by: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        updated_at: z.ZodEffects<z.ZodNumber, import("@tmlmobilidade/go-types-shared").UnixTimestamp, number>;
        updated_by: z.ZodOptional<z.ZodString>;
        action: z.ZodEnum<["create", "update", "delete", "archive", "restore"]>;
    }, "strip", z.ZodTypeAny, {
        type: "crud";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        updated_by?: string | undefined;
    }, {
        type: "crud";
        created_at: number;
        updated_at: number;
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    }>]>, {
        message: string;
        type: "note";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        _id?: string | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        field: string;
        _id?: string | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        updated_by?: string | undefined;
    }, {
        message: string;
        type: "note";
        created_at: number;
        updated_at: number;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number;
        updated_at: number;
        field: string;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number;
        updated_at: number;
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    }>, "many">>>>;
    destination: z.ZodOptional<z.ZodString>;
    direction: z.ZodOptional<z.ZodDefault<z.ZodEnum<["outbound", "inbound"]>>>;
    origin: z.ZodOptional<z.ZodString>;
    parameters: z.ZodOptional<z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
        _id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        path: z.ZodArray<z.ZodObject<{
            avg_speed: z.ZodNumber;
            dwell_time: z.ZodNumber;
            stop_id: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }>, "many">;
        vehicle_type: z.ZodOptional<z.ZodString>;
    } & {
        kind: z.ZodLiteral<"default">;
    }, "strip", z.ZodTypeAny, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    }, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    }>, z.ZodObject<{
        _id: z.ZodOptional<z.ZodString>;
        name: z.ZodOptional<z.ZodString>;
        path: z.ZodArray<z.ZodObject<{
            avg_speed: z.ZodNumber;
            dwell_time: z.ZodNumber;
            stop_id: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }, {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }>, "many">;
        vehicle_type: z.ZodOptional<z.ZodString>;
    } & {
        day_periods: z.ZodOptional<z.ZodArray<z.ZodEnum<["PPM", "CD", "PPT", "N", "M"]>, "many">>;
        kind: z.ZodLiteral<"override">;
        weekdays: z.ZodArray<z.ZodNativeEnum<{
            readonly Fri: 5;
            readonly Mon: 1;
            readonly Sat: 6;
            readonly Sun: 7;
            readonly Thu: 4;
            readonly Tue: 2;
            readonly Wed: 3;
        }>, "many">;
        year_period_ids: z.ZodArray<z.ZodString, "many">;
    }, "strip", z.ZodTypeAny, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    }, {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    }>]>, "many">, ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[], ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[]>>>;
} & {
    rules: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<Omit<{
        _id: z.ZodString;
        event_id: z.ZodOptional<z.ZodString>;
        kind: z.ZodLiteral<"manual">;
        months: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<{
            readonly Apr: 4;
            readonly Aug: 8;
            readonly Dec: 12;
            readonly Feb: 2;
            readonly Jan: 1;
            readonly Jul: 7;
            readonly Jun: 6;
            readonly Mar: 3;
            readonly May: 5;
            readonly Nov: 11;
            readonly Oct: 10;
            readonly Sep: 9;
        }>, "many">>;
        name: z.ZodOptional<z.ZodString>;
        operating_mode: z.ZodEnum<["exclude", "include"]>;
        timepoints: z.ZodArray<z.ZodBranded<z.ZodEffects<z.ZodString, string, string>, "HHMM">, "many">;
        weekdays: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<{
            readonly Fri: 5;
            readonly Mon: 1;
            readonly Sat: 6;
            readonly Sun: 7;
            readonly Thu: 4;
            readonly Tue: 2;
            readonly Wed: 3;
        }>, "many">>;
        year_period_ids: z.ZodArray<z.ZodString, "many">;
    }, "name">, "strip", z.ZodTypeAny, {
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: (string & z.BRAND<"HHMM">)[];
        year_period_ids: string[];
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    }, {
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: string[];
        year_period_ids: string[];
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    }>, {
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: (string & z.BRAND<"HHMM">)[];
        year_period_ids: string[];
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    }, {
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: string[];
        year_period_ids: string[];
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    code?: string | undefined;
    path?: {
        _id: string;
        stop_id: number;
        timepoint: boolean;
        allow_drop_off: boolean;
        allow_pickup: boolean;
        distance_delta: number | null;
        zones?: string[] | undefined;
    }[] | undefined;
    shape?: {
        geojson: {
            type: string;
            geometry: {
                type: string;
                coordinates: number[][];
            };
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            type: "via" | "through";
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            sequence: number;
        }[] | undefined;
        legs?: {
            geojson: {
                type: string;
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    type: string;
                    coordinates: number[][];
                };
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    } | undefined;
    rules?: {
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: (string & z.BRAND<"HHMM">)[];
        year_period_ids: string[];
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    }[] | undefined;
    headsign?: string | undefined;
    line_id?: string | undefined;
    route_id?: string | undefined;
    comments?: ({
        message: string;
        type: "note";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        _id?: string | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        field: string;
        _id?: string | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number & {
            __brand: "UnixTimestamp";
        };
        created_by: string | null;
        updated_at: number & {
            __brand: "UnixTimestamp";
        };
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        updated_by?: string | undefined;
    })[] | undefined;
    destination?: string | undefined;
    direction?: "outbound" | "inbound" | undefined;
    origin?: string | undefined;
    parameters?: ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[] | undefined;
}, {
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    code?: string | undefined;
    path?: {
        _id: string;
        stop_id: number;
        zones?: string[] | undefined;
        timepoint?: boolean | undefined;
        allow_drop_off?: boolean | undefined;
        allow_pickup?: boolean | undefined;
        distance_delta?: number | null | undefined;
    }[] | undefined;
    shape?: {
        geojson: {
            geometry: {
                coordinates: number[][];
                type?: string | undefined;
            };
            type?: string | undefined;
            properties?: {} | undefined;
        };
        extension: number;
        encoded_polyline?: string | undefined;
        anchors?: {
            _id: string;
            after_stop_id: number;
            before_stop_id: number;
            lat: number;
            lon: number;
            type?: "via" | "through" | undefined;
            sequence?: number | undefined;
        }[] | undefined;
        legs?: {
            geojson: {
                properties: {
                    distance: number;
                    duration: number;
                    from_index: number;
                    to_index: number;
                };
                geometry: {
                    coordinates: number[][];
                    type?: string | undefined;
                };
                type?: string | undefined;
            };
            distance: number;
            duration: number;
            from_index: number;
            geometry: [number, number][];
            to_index: number;
            encoded_polyline?: string | undefined;
        }[] | undefined;
    } | undefined;
    rules?: {
        _id: string;
        kind: "manual";
        operating_mode: "exclude" | "include";
        timepoints: string[];
        year_period_ids: string[];
        event_id?: string | undefined;
        months?: (1 | 2 | 12 | 10 | 11 | 4 | 3 | 8 | 5 | 6 | 7 | 9)[] | undefined;
        weekdays?: (1 | 2 | 4 | 3 | 5 | 6 | 7)[] | undefined;
    }[] | undefined;
    headsign?: string | undefined;
    line_id?: string | undefined;
    route_id?: string | undefined;
    comments?: ({
        message: string;
        type: "note";
        created_at: number;
        updated_at: number;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    } | {
        type: "field_changed";
        created_at: number;
        updated_at: number;
        field: string;
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
        curr_value?: any;
        prev_value?: any;
        metadata?: {
            changes?: {
                field: string;
                curr_value?: any;
                prev_value?: any;
            }[] | undefined;
        } | null | undefined;
    } | {
        type: "crud";
        created_at: number;
        updated_at: number;
        action: "create" | "update" | "delete" | "archive" | "restore";
        _id?: string | undefined;
        created_by?: string | null | undefined;
        updated_by?: string | undefined;
    })[] | undefined;
    destination?: string | undefined;
    direction?: "outbound" | "inbound" | undefined;
    origin?: string | undefined;
    parameters?: ({
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "default";
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
    } | {
        path: {
            stop_id: number;
            avg_speed: number;
            dwell_time: number;
        }[];
        kind: "override";
        weekdays: (1 | 2 | 4 | 3 | 5 | 6 | 7)[];
        year_period_ids: string[];
        _id?: string | undefined;
        name?: string | undefined;
        vehicle_type?: string | undefined;
        day_periods?: ("PPM" | "CD" | "PPT" | "N" | "M")[] | undefined;
    })[] | undefined;
}>;
export type Pattern = z.infer<typeof PatternSchema>;
export type CreatePatternDto = z.infer<typeof CreatePatternSchema>;
export type UpdatePatternDto = z.infer<typeof UpdatePatternSchema>;
export type PopulatedPattern = Omit<Pattern, 'path'> & {
    path: PopulatedPath[];
};
export type PatternSimplified = z.infer<typeof PatternSimplifiedSchema>;
export type PatternShapeMapItem = z.infer<typeof PatternShapeMapItemSchema>;
export type Path = z.infer<typeof PathSchema>;
export type PopulatedPath = Path & {
    stop: null | Stop;
};
export type Shape = z.infer<typeof ShapeSchema>;
