import { type UnixTimestamp } from '../_common/unix-timestamp.js';
import { z } from 'zod';
export declare enum ApexValidationStatus {
    /**
     * VALID:
     * The card holder had a valid contract for the given context.
     */
    _0_ContractValid = 0,
    /**
     * INVALID:
     * The card holder already has a valid validation for the given context.
     */
    _1_Antipassback = 1,
    /**
     * INVALID:
     * The card holder's card is in the black list.
     */
    _2_CardInBlackList = 2,
    /**
     * INVALID:
     * The validator SAM is in the black list.
     */
    _3_SamInBlackList = 3,
    /**
     * VALID:
     * The card holder's card is in the white list.
     */
    _4_CardInWhiteList = 4,
    /**
     * VALID:
     * The card holder's profile is in the white list.
     */
    _5_ProfileInWhiteList = 5,
    /**
     * VALID:
     * The context allows for validation re-use.
     */
    _6_Interchange = 6,
    /**
     * INVALID:
     * The validation could not be written to the card.
     */
    _7_Interrupted = 7,
    /**
     * INVALID:
     * The card holder does not have a valid contract for the given context.
     */
    _8_NoValidContract = 8,
    /**
     * INVALID:
     * The card holder's card is invalidated.
     */
    _9_CardInvalidated = 9,
    /**
     * INVALID:
     * The card holder's card or the validator's SAM has no more space for events.
     */
    _10_EventsFull = 10,
    /**
     * INVALID:
     * The card holder's card does not have enough units for the given context.
     */
    _11_NotEnoughUnits = 11,
    /**
     * INVALID:
     * The card holder's contract has expired.
     */
    _12_ContractExpired = 12,
    /**
     * INVALID:
     * The maximum value for the validation status. This is used to validate the status.
     */
    _13_MaxValue = 13
}
export declare const SimplifiedApexValidationSchema: z.ZodObject<{
    _id: z.ZodString;
    created_at: z.ZodOptional<z.ZodNullable<z.ZodBranded<z.ZodEffects<z.ZodNumber, UnixTimestamp, number>, "UnixTimestamp">>>;
    updated_at: z.ZodOptional<z.ZodNullable<z.ZodBranded<z.ZodEffects<z.ZodNumber, UnixTimestamp, number>, "UnixTimestamp">>>;
} & {
    agency_id: z.ZodString;
    apex_version: z.ZodString;
    card_serial_number: z.ZodString;
    device_id: z.ZodString;
    event_type: z.ZodNumber;
    is_passenger: z.ZodBoolean;
    line_id: z.ZodString;
    mac_ase_counter_value: z.ZodNumber;
    mac_sam_serial_number: z.ZodNumber;
    on_board_refund_id: z.ZodNullable<z.ZodString>;
    on_board_sale_id: z.ZodNullable<z.ZodString>;
    pattern_id: z.ZodString;
    product_id: z.ZodString;
    received_at: z.ZodBranded<z.ZodEffects<z.ZodNumber, UnixTimestamp, number>, "UnixTimestamp">;
    stop_id: z.ZodString;
    trip_id: z.ZodString;
    units_qty: z.ZodNullable<z.ZodNumber>;
    validation_status: z.ZodNativeEnum<typeof ApexValidationStatus>;
    vehicle_id: z.ZodString;
}, "strict", z.ZodTypeAny, {
    _id: string;
    agency_id: string;
    stop_id: string;
    line_id: string;
    pattern_id: string;
    trip_id: string;
    apex_version: string;
    device_id: string;
    mac_ase_counter_value: number;
    mac_sam_serial_number: number;
    received_at: number & {
        __brand: "UnixTimestamp";
    } & z.BRAND<"UnixTimestamp">;
    vehicle_id: string;
    card_serial_number: string;
    on_board_sale_id: string | null;
    is_passenger: boolean;
    on_board_refund_id: string | null;
    event_type: number;
    product_id: string;
    units_qty: number | null;
    validation_status: ApexValidationStatus;
    created_at?: (number & {
        __brand: "UnixTimestamp";
    } & z.BRAND<"UnixTimestamp">) | null | undefined;
    updated_at?: (number & {
        __brand: "UnixTimestamp";
    } & z.BRAND<"UnixTimestamp">) | null | undefined;
}, {
    _id: string;
    agency_id: string;
    stop_id: string;
    line_id: string;
    pattern_id: string;
    trip_id: string;
    apex_version: string;
    device_id: string;
    mac_ase_counter_value: number;
    mac_sam_serial_number: number;
    received_at: number;
    vehicle_id: string;
    card_serial_number: string;
    on_board_sale_id: string | null;
    is_passenger: boolean;
    on_board_refund_id: string | null;
    event_type: number;
    product_id: string;
    units_qty: number | null;
    validation_status: ApexValidationStatus;
    created_at?: number | null | undefined;
    updated_at?: number | null | undefined;
}>;
export declare const UpdateSimplifiedApexValidationSchema: z.ZodObject<{
    _id: z.ZodOptional<z.ZodString>;
    created_at: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodBranded<z.ZodEffects<z.ZodNumber, UnixTimestamp, number>, "UnixTimestamp">>>>;
    updated_at: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodBranded<z.ZodEffects<z.ZodNumber, UnixTimestamp, number>, "UnixTimestamp">>>>;
    agency_id: z.ZodOptional<z.ZodString>;
    apex_version: z.ZodOptional<z.ZodString>;
    card_serial_number: z.ZodOptional<z.ZodString>;
    device_id: z.ZodOptional<z.ZodString>;
    event_type: z.ZodOptional<z.ZodNumber>;
    is_passenger: z.ZodOptional<z.ZodBoolean>;
    line_id: z.ZodOptional<z.ZodString>;
    mac_ase_counter_value: z.ZodOptional<z.ZodNumber>;
    mac_sam_serial_number: z.ZodOptional<z.ZodNumber>;
    on_board_refund_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    on_board_sale_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    pattern_id: z.ZodOptional<z.ZodString>;
    product_id: z.ZodOptional<z.ZodString>;
    received_at: z.ZodOptional<z.ZodBranded<z.ZodEffects<z.ZodNumber, UnixTimestamp, number>, "UnixTimestamp">>;
    stop_id: z.ZodOptional<z.ZodString>;
    trip_id: z.ZodOptional<z.ZodString>;
    units_qty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    validation_status: z.ZodOptional<z.ZodNativeEnum<typeof ApexValidationStatus>>;
    vehicle_id: z.ZodOptional<z.ZodString>;
}, "strict", z.ZodTypeAny, {
    _id?: string | undefined;
    created_at?: (number & {
        __brand: "UnixTimestamp";
    } & z.BRAND<"UnixTimestamp">) | null | undefined;
    updated_at?: (number & {
        __brand: "UnixTimestamp";
    } & z.BRAND<"UnixTimestamp">) | null | undefined;
    agency_id?: string | undefined;
    stop_id?: string | undefined;
    line_id?: string | undefined;
    pattern_id?: string | undefined;
    trip_id?: string | undefined;
    apex_version?: string | undefined;
    device_id?: string | undefined;
    mac_ase_counter_value?: number | undefined;
    mac_sam_serial_number?: number | undefined;
    received_at?: (number & {
        __brand: "UnixTimestamp";
    } & z.BRAND<"UnixTimestamp">) | undefined;
    vehicle_id?: string | undefined;
    card_serial_number?: string | undefined;
    on_board_sale_id?: string | null | undefined;
    is_passenger?: boolean | undefined;
    on_board_refund_id?: string | null | undefined;
    event_type?: number | undefined;
    product_id?: string | undefined;
    units_qty?: number | null | undefined;
    validation_status?: ApexValidationStatus | undefined;
}, {
    _id?: string | undefined;
    created_at?: number | null | undefined;
    updated_at?: number | null | undefined;
    agency_id?: string | undefined;
    stop_id?: string | undefined;
    line_id?: string | undefined;
    pattern_id?: string | undefined;
    trip_id?: string | undefined;
    apex_version?: string | undefined;
    device_id?: string | undefined;
    mac_ase_counter_value?: number | undefined;
    mac_sam_serial_number?: number | undefined;
    received_at?: number | undefined;
    vehicle_id?: string | undefined;
    card_serial_number?: string | undefined;
    on_board_sale_id?: string | null | undefined;
    is_passenger?: boolean | undefined;
    on_board_refund_id?: string | null | undefined;
    event_type?: number | undefined;
    product_id?: string | undefined;
    units_qty?: number | null | undefined;
    validation_status?: ApexValidationStatus | undefined;
}>;
/**
 * APEX Validations are APEX transactions of type 11 that are generated when a card holder touches a validator
 * reader (ex: bus validator, subway gate). These validation transactions represent the card holder's right to travel
 * on a given route, line, or vehicle. T11s have statuses that indicate if the card holder was allowed to travel
 * or not, and with which conditions. A validation also contains information about the card holder's card, the vehicle,
 * the validator machine, the route, and the time and location of the validation.
 */
export interface SimplifiedApexValidation extends Omit<z.infer<typeof SimplifiedApexValidationSchema>, 'created_at' | 'received_at' | 'updated_at'> {
    created_at: UnixTimestamp;
    received_at: UnixTimestamp;
    updated_at: UnixTimestamp;
}
export type UpdateSimplifiedApexValidationDto = Partial<SimplifiedApexValidation>;
/**
 * Validation statuses that are considered valid for the card holder to travel.
 */
export declare const ALLOWED_VALIDATION_STATUSES: ApexValidationStatus[];
