import { z } from 'zod';
import type { ActionValidator } from '../../types/action';
import type { TrpcProcedure } from '../../types/trpc';
import type { BlazeServiceAction } from '../action';
export declare function getValidator<H extends z.ZodSchema = z.ZodSchema, P extends z.ZodSchema = z.ZodSchema, Q extends z.ZodSchema = z.ZodSchema, B extends z.ZodSchema = z.ZodSchema>(validator: ActionValidator<H, P, Q, B> | null | undefined): z.ZodObject<{
    headers: H | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    params: P | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    query: Q | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    body: B | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
}, "strip", z.ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    headers: H | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    params: P | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    query: Q | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    body: B | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    headers: H | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    params: P | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    query: Q | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    body: B | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    headers: H | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    params: P | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    query: Q | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    body: B | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
}>]: z.baseObjectInputType<{
    headers: H | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    params: P | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    query: Q | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
    body: B | z.ZodDefault<z.ZodNullable<z.ZodAny>>;
}>[k_1]; }>;
export declare function trpcHandler(action: BlazeServiceAction, input: z.input<ReturnType<typeof getValidator>>): Promise<unknown>;
export declare function getTrpcInput(procedure: TrpcProcedure, action: BlazeServiceAction): import("@trpc/server").ProcedureBuilder<{
    _config: import("@trpc/server").RootConfig<{
        ctx: object;
        meta: object;
        errorShape: import("@trpc/server").DefaultErrorShape;
        transformer: import("@trpc/server").DefaultDataTransformer;
    }>;
    _meta: object;
    _ctx_out: object;
    _input_in: {
        params?: any;
        query?: any;
        body?: any;
        headers?: any;
    };
    _input_out: {
        params?: any;
        query?: any;
        body?: any;
        headers?: any;
    };
    _output_in: typeof import("@trpc/server").unsetMarker;
    _output_out: typeof import("@trpc/server").unsetMarker;
}>;
