import { type OperationalDate } from './_common/operational-date.js';
import { type UnixTimestamp } from './_common/unix-timestamp.js';
import { z } from 'zod';
export declare const AgencySchema: 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">>>;
} & {
    email: z.ZodString;
    fare_url: z.ZodString;
    is_locked: z.ZodBoolean;
    lang: z.ZodString;
    name: z.ZodString;
    operation_start_date: z.ZodBranded<z.ZodEffects<z.ZodString, OperationalDate, string>, "OperationalDate">;
    phone: z.ZodString;
    price_per_km: z.ZodNumber;
    timezone: z.ZodString;
    total_vkm_per_year: z.ZodNumber;
    url: z.ZodString;
}, "strict", z.ZodTypeAny, {
    _id: string;
    email: string;
    fare_url: string;
    is_locked: boolean;
    lang: string;
    name: string;
    operation_start_date: string & {
        __brand: "OperationalDate";
    } & z.BRAND<"OperationalDate">;
    phone: string;
    price_per_km: number;
    timezone: string;
    total_vkm_per_year: number;
    url: string;
    created_at?: (number & {
        __brand: "UnixTimestamp";
    } & z.BRAND<"UnixTimestamp">) | null | undefined;
    updated_at?: (number & {
        __brand: "UnixTimestamp";
    } & z.BRAND<"UnixTimestamp">) | null | undefined;
}, {
    _id: string;
    email: string;
    fare_url: string;
    is_locked: boolean;
    lang: string;
    name: string;
    operation_start_date: string;
    phone: string;
    price_per_km: number;
    timezone: string;
    total_vkm_per_year: number;
    url: string;
    created_at?: number | null | undefined;
    updated_at?: number | null | undefined;
}>;
export declare const CreateAgencySchema: z.ZodObject<Omit<{
    _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">>>;
} & {
    email: z.ZodString;
    fare_url: z.ZodString;
    is_locked: z.ZodBoolean;
    lang: z.ZodString;
    name: z.ZodString;
    operation_start_date: z.ZodBranded<z.ZodEffects<z.ZodString, OperationalDate, string>, "OperationalDate">;
    phone: z.ZodString;
    price_per_km: z.ZodNumber;
    timezone: z.ZodString;
    total_vkm_per_year: z.ZodNumber;
    url: z.ZodString;
}, "created_at" | "updated_at">, "strict", z.ZodTypeAny, {
    _id: string;
    email: string;
    fare_url: string;
    is_locked: boolean;
    lang: string;
    name: string;
    operation_start_date: string & {
        __brand: "OperationalDate";
    } & z.BRAND<"OperationalDate">;
    phone: string;
    price_per_km: number;
    timezone: string;
    total_vkm_per_year: number;
    url: string;
}, {
    _id: string;
    email: string;
    fare_url: string;
    is_locked: boolean;
    lang: string;
    name: string;
    operation_start_date: string;
    phone: string;
    price_per_km: number;
    timezone: string;
    total_vkm_per_year: number;
    url: string;
}>;
export declare const UpdateAgencySchema: z.ZodObject<{
    _id: z.ZodOptional<z.ZodString>;
    email: z.ZodOptional<z.ZodString>;
    fare_url: z.ZodOptional<z.ZodString>;
    is_locked: z.ZodOptional<z.ZodBoolean>;
    lang: z.ZodOptional<z.ZodString>;
    name: z.ZodOptional<z.ZodString>;
    operation_start_date: z.ZodOptional<z.ZodBranded<z.ZodEffects<z.ZodString, OperationalDate, string>, "OperationalDate">>;
    phone: z.ZodOptional<z.ZodString>;
    price_per_km: z.ZodOptional<z.ZodNumber>;
    timezone: z.ZodOptional<z.ZodString>;
    total_vkm_per_year: z.ZodOptional<z.ZodNumber>;
    url: z.ZodOptional<z.ZodString>;
}, "strict", z.ZodTypeAny, {
    _id?: string | undefined;
    email?: string | undefined;
    fare_url?: string | undefined;
    is_locked?: boolean | undefined;
    lang?: string | undefined;
    name?: string | undefined;
    operation_start_date?: (string & {
        __brand: "OperationalDate";
    } & z.BRAND<"OperationalDate">) | undefined;
    phone?: string | undefined;
    price_per_km?: number | undefined;
    timezone?: string | undefined;
    total_vkm_per_year?: number | undefined;
    url?: string | undefined;
}, {
    _id?: string | undefined;
    email?: string | undefined;
    fare_url?: string | undefined;
    is_locked?: boolean | undefined;
    lang?: string | undefined;
    name?: string | undefined;
    operation_start_date?: string | undefined;
    phone?: string | undefined;
    price_per_km?: number | undefined;
    timezone?: string | undefined;
    total_vkm_per_year?: number | undefined;
    url?: string | undefined;
}>;
export interface Agency extends Omit<z.infer<typeof AgencySchema>, 'created_at' | 'operation_start_date' | 'updated_at'> {
    created_at: UnixTimestamp;
    operation_start_date: OperationalDate;
    updated_at: UnixTimestamp;
}
export interface CreateAgencyDto extends Omit<z.infer<typeof CreateAgencySchema>, 'operation_start_date'> {
    operation_start_date: OperationalDate;
}
export type UpdateAgencyDto = Partial<CreateAgencyDto>;
export declare const AgencyPermissionSchema: z.ZodObject<{
    agency_ids: z.ZodArray<z.ZodString, "many">;
    municipality_ids: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    agency_ids: string[];
    municipality_ids: string[];
}, {
    agency_ids: string[];
    municipality_ids: string[];
}>;
export type AgencyPermission = z.infer<typeof AgencyPermissionSchema>;
