import { z } from 'zod';
export declare const INTERCHANGE_MODE: {
    readonly CONFIGURED: "2";
    readonly NONE: "0";
    readonly SAME_OPERATOR: "1";
};
export declare const interchangeModeOptions: ({
    label: string;
    value: "0";
} | {
    label: string;
    value: "1";
} | {
    label: string;
    value: "2";
})[];
export declare const LineSchema: 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>;
} & {
    agency_id: z.ZodString;
    code: z.ZodString;
    interchange: z.ZodDefault<z.ZodNativeEnum<{
        readonly CONFIGURED: "2";
        readonly NONE: "0";
        readonly SAME_OPERATOR: "1";
    }>>;
    is_circular_line: z.ZodDefault<z.ZodBoolean>;
    is_locked: z.ZodDefault<z.ZodBoolean>;
    is_school_line: z.ZodDefault<z.ZodBoolean>;
    name: z.ZodString;
    onboard_fare_ids: z.ZodDefault<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
    prepaid_fare_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
    transport_type: z.ZodDefault<z.ZodEnum<["aerial_lift", "bus", "cable_tram", "ferry", "funicular", "monorail", "rail", "subway", "tram", "trolleybus"]>>;
    typology: z.ZodDefault<z.ZodNullable<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    _id: string;
    created_at: number & {
        __brand: "UnixTimestamp";
    };
    created_by: string | null;
    is_locked: boolean;
    updated_at: number & {
        __brand: "UnixTimestamp";
    };
    code: string;
    name: string;
    agency_id: string;
    interchange: "0" | "1" | "2";
    is_circular_line: boolean;
    is_school_line: boolean;
    onboard_fare_ids: string[] | null;
    prepaid_fare_id: string | null;
    transport_type: "ferry" | "subway" | "aerial_lift" | "bus" | "cable_tram" | "funicular" | "monorail" | "rail" | "tram" | "trolleybus";
    typology: string | null;
    updated_by?: string | undefined;
}, {
    _id: string;
    created_at: number;
    updated_at: number;
    code: string;
    name: string;
    agency_id: string;
    created_by?: string | null | undefined;
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    interchange?: "0" | "1" | "2" | undefined;
    is_circular_line?: boolean | undefined;
    is_school_line?: boolean | undefined;
    onboard_fare_ids?: string[] | null | undefined;
    prepaid_fare_id?: string | null | undefined;
    transport_type?: "ferry" | "subway" | "aerial_lift" | "bus" | "cable_tram" | "funicular" | "monorail" | "rail" | "tram" | "trolleybus" | undefined;
    typology?: string | null | undefined;
}>;
export declare const LineNormalizedSchema: 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>;
} & {
    agency_id: z.ZodString;
    code: z.ZodString;
    interchange: z.ZodDefault<z.ZodNativeEnum<{
        readonly CONFIGURED: "2";
        readonly NONE: "0";
        readonly SAME_OPERATOR: "1";
    }>>;
    is_circular_line: z.ZodDefault<z.ZodBoolean>;
    is_locked: z.ZodDefault<z.ZodBoolean>;
    is_school_line: z.ZodDefault<z.ZodBoolean>;
    name: z.ZodString;
    onboard_fare_ids: z.ZodDefault<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
    prepaid_fare_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
    transport_type: z.ZodDefault<z.ZodEnum<["aerial_lift", "bus", "cable_tram", "ferry", "funicular", "monorail", "rail", "subway", "tram", "trolleybus"]>>;
    typology: z.ZodDefault<z.ZodNullable<z.ZodString>>;
} & {
    onboard_fares_data: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<Pick<{
        _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>;
    } & {
        agency_ids: z.ZodArray<z.ZodString, "many">;
        code: z.ZodString;
        currency_type: z.ZodDefault<z.ZodEnum<["EUR"]>>;
        is_locked: z.ZodDefault<z.ZodBoolean>;
        name: z.ZodString;
        payment_method: z.ZodDefault<z.ZodEnum<["0", "1"]>>;
        price: z.ZodDefault<z.ZodNumber>;
        transfers: z.ZodDefault<z.ZodEnum<["0", "1", "2", "unlimited"]>>;
    }, "_id" | "name" | "payment_method">, "strip", z.ZodTypeAny, {
        _id: string;
        name: string;
        payment_method: "0" | "1";
    }, {
        _id: string;
        name: string;
        payment_method?: "0" | "1" | undefined;
    }>, "many">>>;
    prepaid_fare_data: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodObject<Pick<{
        _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>;
    } & {
        agency_ids: z.ZodArray<z.ZodString, "many">;
        code: z.ZodString;
        currency_type: z.ZodDefault<z.ZodEnum<["EUR"]>>;
        is_locked: z.ZodDefault<z.ZodBoolean>;
        name: z.ZodString;
        payment_method: z.ZodDefault<z.ZodEnum<["0", "1"]>>;
        price: z.ZodDefault<z.ZodNumber>;
        transfers: z.ZodDefault<z.ZodEnum<["0", "1", "2", "unlimited"]>>;
    }, "_id" | "name" | "payment_method">, "strip", z.ZodTypeAny, {
        _id: string;
        name: string;
        payment_method: "0" | "1";
    }, {
        _id: string;
        name: string;
        payment_method?: "0" | "1" | undefined;
    }>>>>;
    routes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        _id: z.ZodString;
        code: z.ZodString;
        name: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        _id: string;
        code: string;
        name: string;
    }, {
        _id: string;
        code: string;
        name: string;
    }>, "many">>>;
    typology_data: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodObject<Pick<{
        _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>;
    } & {
        agency_ids: z.ZodArray<z.ZodString, "many">;
        code: z.ZodString;
        color: z.ZodString;
        default_onboard_fare_ids: z.ZodDefault<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
        default_prepaid_fare_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
        is_locked: z.ZodDefault<z.ZodBoolean>;
        name: z.ZodString;
        text_color: z.ZodString;
    }, "_id" | "code" | "name" | "color" | "default_onboard_fare_ids" | "default_prepaid_fare_id" | "text_color">, "strip", z.ZodTypeAny, {
        _id: string;
        code: string;
        name: string;
        color: string;
        default_onboard_fare_ids: string[] | null;
        default_prepaid_fare_id: string | null;
        text_color: string;
    }, {
        _id: string;
        code: string;
        name: string;
        color: string;
        text_color: string;
        default_onboard_fare_ids?: string[] | null | undefined;
        default_prepaid_fare_id?: string | null | 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;
    name: string;
    agency_id: string;
    interchange: "0" | "1" | "2";
    is_circular_line: boolean;
    is_school_line: boolean;
    onboard_fare_ids: string[] | null;
    prepaid_fare_id: string | null;
    transport_type: "ferry" | "subway" | "aerial_lift" | "bus" | "cable_tram" | "funicular" | "monorail" | "rail" | "tram" | "trolleybus";
    typology: string | null;
    onboard_fares_data: {
        _id: string;
        name: string;
        payment_method: "0" | "1";
    }[];
    prepaid_fare_data: {
        _id: string;
        name: string;
        payment_method: "0" | "1";
    } | null;
    routes: {
        _id: string;
        code: string;
        name: string;
    }[];
    typology_data: {
        _id: string;
        code: string;
        name: string;
        color: string;
        default_onboard_fare_ids: string[] | null;
        default_prepaid_fare_id: string | null;
        text_color: string;
    } | null;
    updated_by?: string | undefined;
}, {
    _id: string;
    created_at: number;
    updated_at: number;
    code: string;
    name: string;
    agency_id: string;
    created_by?: string | null | undefined;
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    interchange?: "0" | "1" | "2" | undefined;
    is_circular_line?: boolean | undefined;
    is_school_line?: boolean | undefined;
    onboard_fare_ids?: string[] | null | undefined;
    prepaid_fare_id?: string | null | undefined;
    transport_type?: "ferry" | "subway" | "aerial_lift" | "bus" | "cable_tram" | "funicular" | "monorail" | "rail" | "tram" | "trolleybus" | undefined;
    typology?: string | null | undefined;
    onboard_fares_data?: {
        _id: string;
        name: string;
        payment_method?: "0" | "1" | undefined;
    }[] | undefined;
    prepaid_fare_data?: {
        _id: string;
        name: string;
        payment_method?: "0" | "1" | undefined;
    } | null | undefined;
    routes?: {
        _id: string;
        code: string;
        name: string;
    }[] | undefined;
    typology_data?: {
        _id: string;
        code: string;
        name: string;
        color: string;
        text_color: string;
        default_onboard_fare_ids?: string[] | null | undefined;
        default_prepaid_fare_id?: string | null | undefined;
    } | null | undefined;
}>;
export declare const CreateLineSchema: 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>;
} & {
    agency_id: z.ZodString;
    code: z.ZodString;
    interchange: z.ZodDefault<z.ZodNativeEnum<{
        readonly CONFIGURED: "2";
        readonly NONE: "0";
        readonly SAME_OPERATOR: "1";
    }>>;
    is_circular_line: z.ZodDefault<z.ZodBoolean>;
    is_locked: z.ZodDefault<z.ZodBoolean>;
    is_school_line: z.ZodDefault<z.ZodBoolean>;
    name: z.ZodString;
    onboard_fare_ids: z.ZodDefault<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
    prepaid_fare_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
    transport_type: z.ZodDefault<z.ZodEnum<["aerial_lift", "bus", "cable_tram", "ferry", "funicular", "monorail", "rail", "subway", "tram", "trolleybus"]>>;
    typology: z.ZodDefault<z.ZodNullable<z.ZodString>>;
}, "_id" | "created_at" | "updated_at">, "strip", z.ZodTypeAny, {
    created_by: string | null;
    is_locked: boolean;
    code: string;
    name: string;
    agency_id: string;
    interchange: "0" | "1" | "2";
    is_circular_line: boolean;
    is_school_line: boolean;
    onboard_fare_ids: string[] | null;
    prepaid_fare_id: string | null;
    transport_type: "ferry" | "subway" | "aerial_lift" | "bus" | "cable_tram" | "funicular" | "monorail" | "rail" | "tram" | "trolleybus";
    typology: string | null;
    updated_by?: string | undefined;
}, {
    code: string;
    name: string;
    agency_id: string;
    created_by?: string | null | undefined;
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    interchange?: "0" | "1" | "2" | undefined;
    is_circular_line?: boolean | undefined;
    is_school_line?: boolean | undefined;
    onboard_fare_ids?: string[] | null | undefined;
    prepaid_fare_id?: string | null | undefined;
    transport_type?: "ferry" | "subway" | "aerial_lift" | "bus" | "cable_tram" | "funicular" | "monorail" | "rail" | "tram" | "trolleybus" | undefined;
    typology?: string | null | undefined;
}>;
export declare const UpdateLineSchema: z.ZodObject<{
    is_locked: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    updated_by: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    code: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    agency_id: z.ZodOptional<z.ZodString>;
    interchange: z.ZodOptional<z.ZodDefault<z.ZodNativeEnum<{
        readonly CONFIGURED: "2";
        readonly NONE: "0";
        readonly SAME_OPERATOR: "1";
    }>>>;
    is_circular_line: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    is_school_line: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    onboard_fare_ids: z.ZodOptional<z.ZodDefault<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>>;
    prepaid_fare_id: z.ZodOptional<z.ZodDefault<z.ZodNullable<z.ZodString>>>;
    transport_type: z.ZodOptional<z.ZodDefault<z.ZodEnum<["aerial_lift", "bus", "cable_tram", "ferry", "funicular", "monorail", "rail", "subway", "tram", "trolleybus"]>>>;
    typology: z.ZodOptional<z.ZodDefault<z.ZodNullable<z.ZodString>>>;
}, "strip", z.ZodTypeAny, {
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    code?: string | undefined;
    name?: string | undefined;
    agency_id?: string | undefined;
    interchange?: "0" | "1" | "2" | undefined;
    is_circular_line?: boolean | undefined;
    is_school_line?: boolean | undefined;
    onboard_fare_ids?: string[] | null | undefined;
    prepaid_fare_id?: string | null | undefined;
    transport_type?: "ferry" | "subway" | "aerial_lift" | "bus" | "cable_tram" | "funicular" | "monorail" | "rail" | "tram" | "trolleybus" | undefined;
    typology?: string | null | undefined;
}, {
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    code?: string | undefined;
    name?: string | undefined;
    agency_id?: string | undefined;
    interchange?: "0" | "1" | "2" | undefined;
    is_circular_line?: boolean | undefined;
    is_school_line?: boolean | undefined;
    onboard_fare_ids?: string[] | null | undefined;
    prepaid_fare_id?: string | null | undefined;
    transport_type?: "ferry" | "subway" | "aerial_lift" | "bus" | "cable_tram" | "funicular" | "monorail" | "rail" | "tram" | "trolleybus" | undefined;
    typology?: string | null | undefined;
}>;
export type Line = z.infer<typeof LineSchema>;
export type CreateLineDto = z.infer<typeof CreateLineSchema>;
export type UpdateLineDto = z.infer<typeof UpdateLineSchema>;
export type LineNormalized = z.infer<typeof LineNormalizedSchema>;
