import { z, ZodType } from 'zod';
export declare function getParams<T extends ZodType<any, any, any>>(params: URLSearchParams | FormData | Record<string, string | undefined>, schema: T): {
    success: false;
    data: undefined;
    errors: {
        [key: string]: string;
    };
} | {
    success: true;
    data: z.TypeOf<T>;
    errors: undefined;
};
export declare function getSearchParams<T extends ZodType<any, any, any>>(request: Pick<Request, 'url'>, schema: T): {
    success: false;
    data: undefined;
    errors: {
        [key: string]: string;
    };
} | {
    success: true;
    data: z.TypeOf<T>;
    errors: undefined;
};
export declare function getFormData<T extends ZodType<any, any, any>>(request: Pick<Request, 'formData'>, schema: T): Promise<{
    success: false;
    data: undefined;
    errors: {
        [key: string]: string;
    };
} | {
    success: true;
    data: z.TypeOf<T>;
    errors: undefined;
}>;
export declare function getParamsOrFail<T extends ZodType<any, any, any>>(params: URLSearchParams | FormData | Record<string, string | undefined>, schema: T): z.TypeOf<T>;
export declare function getSearchParamsOrFail<T extends ZodType<any, any, any>>(request: Pick<Request, 'url'>, schema: T): z.TypeOf<T>;
export declare function getFormDataOrFail<T extends ZodType<any, any, any>>(request: Pick<Request, 'formData'>, schema: T): Promise<z.TypeOf<T>>;
export declare type InputPropType = {
    name: string;
    type: string;
    required?: boolean;
    min?: number;
    max?: number;
    minLength?: number;
    maxLength?: number;
    pattern?: string;
};
export declare function useFormInputProps(schema: any, options?: any): (key: string, options?: any) => InputPropType;
