/**
 * Base error type used by Seyfert.
 *
 * It supports optional machine-readable metadata and preserves the original
 * cause when wrapping lower-level errors.
 *
 * @remarks
 * For validation errors, prefer structured metadata (you can use
 * {@link createValidationMetadata}) with:
 * - `expected`: expected value or shape
 * - `received`: received value
 * - `receivedType`: optional primitive/runtime type
 *
 * @example
 * ```ts
 * throw new SeyfertError('INVALID_TOKEN', {
 *   metadata: { shardId: 0 },
 * });
 * ```
 */
export declare class SeyfertError extends Error {
    /**
     * Error name used in logs and stack traces.
     */
    name: string;
    /**
     * Optional machine-readable error identifier.
     */
    code: SeyfertErrorCode;
    /**
     * Optional contextual data attached to the error.
     */
    metadata?: Record<string, unknown>;
    /**
     * Creates a SeyfertError instance.
     *
     * @param code Machine-readable error code.
     * @param options Additional error options.
     * @param options.metadata Optional contextual metadata for diagnostics.
     * @param options.cause Original error that caused this error.
     */
    constructor(code: SeyfertErrorCode, options?: {
        metadata?: Record<string, unknown>;
        cause?: unknown;
    });
    /**
     * Serializes the error into a plain object.
     *
     * @returns Serializable error payload including name, message, code, metadata and cause.
     */
    toJSON(): {
        name: string;
        message: string;
        code: SeyfertErrorCode;
        metadata: Record<string, unknown> | undefined;
        cause: unknown;
    };
}
export declare function createValidationMetadata(expected: unknown, received: unknown, metadata?: Record<string, unknown>): {
    expected: unknown;
    received: unknown;
    receivedType: string;
};
export declare const SeyfertErrorMessages: {
    INTERNAL_ERROR: string;
    INVALID_TOKEN: string;
    FUNCTION_NOT_IMPLEMENTED: string;
    NO_SEYFERT_CONFIG: string;
    BAD_OPTION: string;
    INVALID_EMOJI: string;
    EMOJI_NOT_RESOLVABLE: string;
    INVALID_OPTIONS_LENGTH: string;
    MISSING_COMPONENT: string;
    MISSING_ACCESSORY: string;
    INVALID_ATTACHMENT_TYPE: string;
    INVALID_ANSWER_ID: string;
    UNDEFINED_LOCALE: string;
    INTERACTION_ALREADY_REPLIED: string;
    CANNOT_USE_REPLY: string;
    RELOAD_NOT_SUPPORTED: string;
    API_WORKER_PROXY_PARENT_REQUIRED: string;
    WORKER_TIMEOUT: string;
    WORKER_THREADS_REQUIRED: string;
    WORKER_AND_SHARD_ID_REQUIRED: string;
    WORKER_NOT_FOUND: string;
    INVALID_SHARD_ID: string;
    INVALID_WORKER_REQUEST: string;
    CANNOT_OVERRIDE_EXISTING_SHARD: string;
    INVALID_SEC_WEBSOCKET_ACCEPT_HEADER: string;
    CACHE_TIMEOUT: string;
    CACHE_USERS_DISABLED: string;
    CACHE_MEMBERS_DISABLED: string;
    CACHE_CHANNELS_DISABLED: string;
    CACHE_OVERWRITES_DISABLED: string;
    CACHE_USERS_VALUES_SIZE_MISMATCH: string;
    CACHE_USERS_COUNT_MISMATCH: string;
    CACHE_USERS_COUNT_NOT_ZERO: string;
    CACHE_MEMBERS_GUILD_VALUES_SIZE_MISMATCH: string;
    CACHE_MEMBERS_GUILD_COUNT_MISMATCH: string;
    CACHE_MEMBERS_VALUES_SIZE_MISMATCH: string;
    CACHE_MEMBERS_GLOBAL_COUNT_MISMATCH: string;
    CACHE_MEMBERS_COUNT_NOT_ZERO: string;
    CACHE_CHANNELS_GUILD_VALUES_SIZE_MISMATCH: string;
    CACHE_CHANNELS_GUILD_COUNT_MISMATCH: string;
    CACHE_CHANNELS_VALUES_SIZE_MISMATCH: string;
    CACHE_CHANNELS_COUNT_MISMATCH: string;
    CACHE_CHANNELS_COUNT_NOT_ZERO: string;
    CACHE_OVERWRITES_CHANNEL_VALUES_SIZE_MISMATCH: string;
    CACHE_OVERWRITES_CHANNEL_COUNT_MISMATCH: string;
    CACHE_OVERWRITE_NOT_FOUND: string;
    CACHE_OVERWRITES_COUNT_NOT_ZERO: string;
    INVALID_RETRY_AFTER: string;
    DENO_FILE_API_UNSUPPORTED: string;
    GUILD_SEARCH_INDEX_NOT_READY: string;
};
export type SeyfertErrorCode = keyof typeof SeyfertErrorMessages | (string & {});
