import type { ErrorCodes, IndexedErrors } from './allErrors.js';
type ErrorArgs<ERROR_CODE extends ErrorCodes> = (IndexedErrors[ERROR_CODE]['hasPath'] extends false ? {
    path?: string;
} : {
    path: string | undefined;
}) & (IndexedErrors[ERROR_CODE]['payload'] extends undefined ? {
    payload?: undefined;
} : {
    payload: IndexedErrors[ERROR_CODE]['payload'];
}) & {
    message: string;
};
export declare class DynamoDBToolboxError<ERROR_CODE extends ErrorCodes = ErrorCodes> extends Error {
    static match: <PREFIX extends string>(error: unknown, prefix?: PREFIX) => error is DynamoDBToolboxError<Extract<ErrorCodes, `${PREFIX}${string}`>>;
    code: ERROR_CODE;
    path: IndexedErrors[ERROR_CODE]['hasPath'] extends false ? undefined : string | undefined;
    payload: IndexedErrors[ERROR_CODE]['payload'];
    constructor(code: ERROR_CODE, { message, path, payload }: ErrorArgs<ERROR_CODE>);
}
export {};
