import type { KTCodec, KTSchemaMeta } from "../schema-codec.js";
export type AjvErrorLike = {
    instancePath?: string;
    message?: string;
    keyword?: string;
    params?: Record<string, unknown>;
};
export type AjvValidateLike<Payload extends object> = ((data: unknown) => data is Payload) & {
    errors?: AjvErrorLike[] | null;
};
export type AjvSchemaLike = Record<string, unknown>;
export type AjvCompilerLike<Payload extends object> = {
    compile: (schema: AjvSchemaLike) => AjvValidateLike<Payload>;
};
export declare const createAjvCodec: <Payload extends object>(params: {
    validate: AjvValidateLike<Payload>;
    serialize?: (data: Payload) => string;
    parse?: (data: string) => unknown;
    schemaMeta?: KTSchemaMeta;
}) => KTCodec<Payload>;
export declare const createAjvCodecFromSchema: <Payload extends object>(params: {
    ajv: AjvCompilerLike<Payload>;
    schema: AjvSchemaLike;
    serialize?: (data: Payload) => string;
    parse?: (data: string) => unknown;
    schemaMeta?: KTSchemaMeta;
}) => KTCodec<Payload>;
