import { z } from 'zod';
export declare const ApiResponseSuccessSchema: z.ZodObject<{
    data: z.ZodAny;
    error: z.ZodNull;
    status_code: z.ZodEnum<["200", "201", "204"]>;
}, "strip", z.ZodTypeAny, {
    error: null;
    status_code: "200" | "201" | "204";
    data?: any;
}, {
    error: null;
    status_code: "200" | "201" | "204";
    data?: any;
}>;
export type ApiResponseSuccess<T> = Omit<z.infer<typeof ApiResponseSuccessSchema>, 'data'> & {
    data: T;
};
export declare const ApiResponseErrorSchema: z.ZodObject<{
    data: z.ZodNull;
    error: z.ZodString;
    status_code: z.ZodEnum<["400", "401", "403", "404", "500"]>;
}, "strip", z.ZodTypeAny, {
    data: null;
    error: string;
    status_code: "400" | "401" | "403" | "404" | "500";
}, {
    data: null;
    error: string;
    status_code: "400" | "401" | "403" | "404" | "500";
}>;
export type ApiResponseError = z.infer<typeof ApiResponseErrorSchema>;
export declare const ApiResponseSchema: z.ZodDiscriminatedUnion<"status_code", [z.ZodObject<{
    data: z.ZodAny;
    error: z.ZodNull;
    status_code: z.ZodEnum<["200", "201", "204"]>;
}, "strip", z.ZodTypeAny, {
    error: null;
    status_code: "200" | "201" | "204";
    data?: any;
}, {
    error: null;
    status_code: "200" | "201" | "204";
    data?: any;
}>, z.ZodObject<{
    data: z.ZodNull;
    error: z.ZodString;
    status_code: z.ZodEnum<["400", "401", "403", "404", "500"]>;
}, "strip", z.ZodTypeAny, {
    data: null;
    error: string;
    status_code: "400" | "401" | "403" | "404" | "500";
}, {
    data: null;
    error: string;
    status_code: "400" | "401" | "403" | "404" | "500";
}>]>;
export type ApiResponse<T> = ApiResponseError | ApiResponseSuccess<T>;
