import { z } from "zod";
export interface ISoundDefinitionCatalog {
    format_version: string;
    sound_definitions: {
        [name: string]: ISoundDefinition;
    };
}
export interface ISoundDefinition {
    category?: string;
    __use_legacy_max_distance?: string | boolean;
    max_distance?: number;
    min_distance?: number;
    sounds: (ISoundReference | string)[];
}
export interface ISoundReference {
    name: string;
    is3D?: boolean;
    stream?: boolean;
    volume?: number;
    weight?: number;
    pitch?: number;
    load_on_low_memory?: boolean;
}
export declare const SoundDefinitionCatalogSchema: z.ZodUnion<[z.ZodObject<{
    format_version: z.ZodString;
    sound_definitions: z.ZodRecord<z.ZodString, z.ZodObject<{
        category: z.ZodOptional<z.ZodString>;
        __use_legacy_max_distance: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"true">, z.ZodLiteral<"false">, z.ZodBoolean]>>;
        max_distance: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
        min_distance: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
        sounds: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
            name: z.ZodString;
            is3D: z.ZodOptional<z.ZodBoolean>;
            stream: z.ZodOptional<z.ZodBoolean>;
            volume: z.ZodOptional<z.ZodNumber>;
            weight: z.ZodOptional<z.ZodNumber>;
            pitch: z.ZodOptional<z.ZodNumber>;
            load_on_low_memory: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            stream?: boolean;
            name?: string;
            is3D?: boolean;
            volume?: number;
            weight?: number;
            pitch?: number;
            load_on_low_memory?: boolean;
        }, {
            stream?: boolean;
            name?: string;
            is3D?: boolean;
            volume?: number;
            weight?: number;
            pitch?: number;
            load_on_low_memory?: boolean;
        }>]>, "many">;
    }, "strip", z.ZodTypeAny, {
        category?: string;
        __use_legacy_max_distance?: boolean | "true" | "false";
        max_distance?: number;
        min_distance?: number;
        sounds?: (string | {
            stream?: boolean;
            name?: string;
            is3D?: boolean;
            volume?: number;
            weight?: number;
            pitch?: number;
            load_on_low_memory?: boolean;
        })[];
    }, {
        category?: string;
        __use_legacy_max_distance?: boolean | "true" | "false";
        max_distance?: number;
        min_distance?: number;
        sounds?: (string | {
            stream?: boolean;
            name?: string;
            is3D?: boolean;
            volume?: number;
            weight?: number;
            pitch?: number;
            load_on_low_memory?: boolean;
        })[];
    }>>;
}, "strip", z.ZodTypeAny, {
    format_version?: string;
    sound_definitions?: Record<string, {
        category?: string;
        __use_legacy_max_distance?: boolean | "true" | "false";
        max_distance?: number;
        min_distance?: number;
        sounds?: (string | {
            stream?: boolean;
            name?: string;
            is3D?: boolean;
            volume?: number;
            weight?: number;
            pitch?: number;
            load_on_low_memory?: boolean;
        })[];
    }>;
}, {
    format_version?: string;
    sound_definitions?: Record<string, {
        category?: string;
        __use_legacy_max_distance?: boolean | "true" | "false";
        max_distance?: number;
        min_distance?: number;
        sounds?: (string | {
            stream?: boolean;
            name?: string;
            is3D?: boolean;
            volume?: number;
            weight?: number;
            pitch?: number;
            load_on_low_memory?: boolean;
        })[];
    }>;
}>, z.ZodRecord<z.ZodString, z.ZodObject<{
    sounds: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
        name: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        name?: string;
    }, {
        name?: string;
    }>]>, "many">;
}, "strip", z.ZodTypeAny, {
    sounds?: (string | {
        name?: string;
    })[];
}, {
    sounds?: (string | {
        name?: string;
    })[];
}>>]>;
