import { z } from 'zod';
export declare const FARE_PAYMENT_METHOD: {
    readonly ONBOARD: "0";
    readonly PREPAID: "1";
};
export declare const FARE_TRANSFERS: {
    readonly NONE: "0";
    readonly ONE: "1";
    readonly TWO: "2";
    readonly UNLIMITED: "unlimited";
};
export declare const FARE_CURRENCY: {
    readonly EUR: "EUR";
};
export declare const FareSchema: 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_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"]>>;
}, "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_ids: string[];
    currency_type: "EUR";
    payment_method: "0" | "1";
    price: number;
    transfers: "0" | "1" | "2" | "unlimited";
    updated_by?: string | undefined;
}, {
    _id: string;
    created_at: number;
    updated_at: number;
    code: string;
    name: string;
    agency_ids: string[];
    created_by?: string | null | undefined;
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    currency_type?: "EUR" | undefined;
    payment_method?: "0" | "1" | undefined;
    price?: number | undefined;
    transfers?: "0" | "1" | "2" | "unlimited" | undefined;
}>;
export declare const CreateFareSchema: z.ZodObject<{
    agency_ids: z.ZodArray<z.ZodString, "many">;
    code: z.ZodString;
    name: z.ZodString;
} & {
    _id: z.ZodOptional<z.ZodString>;
    created_by: z.ZodOptional<z.ZodDefault<z.ZodNullable<z.ZodString>>>;
    is_locked: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    updated_by: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    currency_type: z.ZodOptional<z.ZodDefault<z.ZodEnum<["EUR"]>>>;
    payment_method: z.ZodOptional<z.ZodDefault<z.ZodEnum<["0", "1"]>>>;
    price: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    transfers: z.ZodOptional<z.ZodDefault<z.ZodEnum<["0", "1", "2", "unlimited"]>>>;
}, "strip", z.ZodTypeAny, {
    code: string;
    name: string;
    agency_ids: string[];
    _id?: string | undefined;
    created_by?: string | null | undefined;
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    currency_type?: "EUR" | undefined;
    payment_method?: "0" | "1" | undefined;
    price?: number | undefined;
    transfers?: "0" | "1" | "2" | "unlimited" | undefined;
}, {
    code: string;
    name: string;
    agency_ids: string[];
    _id?: string | undefined;
    created_by?: string | null | undefined;
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    currency_type?: "EUR" | undefined;
    payment_method?: "0" | "1" | undefined;
    price?: number | undefined;
    transfers?: "0" | "1" | "2" | "unlimited" | undefined;
}>;
export declare const UpdateFareSchema: z.ZodObject<{
    _id: z.ZodOptional<z.ZodOptional<z.ZodString>>;
    is_locked: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
    updated_by: z.ZodOptional<z.ZodOptional<z.ZodOptional<z.ZodString>>>;
    code: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    agency_ids: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    currency_type: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodEnum<["EUR"]>>>>;
    payment_method: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodEnum<["0", "1"]>>>>;
    price: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodNumber>>>;
    transfers: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodEnum<["0", "1", "2", "unlimited"]>>>>;
}, "strip", z.ZodTypeAny, {
    _id?: string | undefined;
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    code?: string | undefined;
    name?: string | undefined;
    agency_ids?: string[] | undefined;
    currency_type?: "EUR" | undefined;
    payment_method?: "0" | "1" | undefined;
    price?: number | undefined;
    transfers?: "0" | "1" | "2" | "unlimited" | undefined;
}, {
    _id?: string | undefined;
    is_locked?: boolean | undefined;
    updated_by?: string | undefined;
    code?: string | undefined;
    name?: string | undefined;
    agency_ids?: string[] | undefined;
    currency_type?: "EUR" | undefined;
    payment_method?: "0" | "1" | undefined;
    price?: number | undefined;
    transfers?: "0" | "1" | "2" | "unlimited" | undefined;
}>;
export declare const FareSimplifiedSchema: 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;
}>;
export type Fare = z.infer<typeof FareSchema>;
export type FareSimplified = z.infer<typeof FareSimplifiedSchema>;
export type CreateFareDto = z.infer<typeof CreateFareSchema>;
export type UpdateFareDto = z.infer<typeof UpdateFareSchema>;
