import { Node, NodeConfig } from './Node.js';
/**
 * Configuration for OXML Node extensions (extends NodeConfig).
 *
 * @typeParam Options - Type for node options.
 * @typeParam Storage - Type for node storage.
 * @typeParam Attrs - Type for node attributes (optional, enables typed addAttributes).
 */
export interface OxmlNodeConfig<Options extends Record<string, unknown> = Record<string, never>, Storage extends Record<string, unknown> = Record<string, never>, Attrs extends Record<string, unknown> = Record<string, unknown>> extends NodeConfig<Options, Storage, Attrs> {
    /** The OXML element name */
    oXmlName: string;
    /** Child attributes to extract */
    childToAttributes?: string[];
}
/**
 * OxmlNode class extends Node with OXML-specific properties.
 *
 * @typeParam Options - Type for node options.
 * @typeParam Storage - Type for node storage.
 * @typeParam Attrs - Type for node attributes (enables typed attribute access).
 */
export declare class OxmlNode<Options extends Record<string, unknown> = Record<string, never>, Storage extends Record<string, unknown> = Record<string, never>, Attrs extends Record<string, unknown> = Record<string, unknown>> extends Node<Options, Storage, Attrs> {
    oXmlName: string;
    constructor(config: OxmlNodeConfig<Options, Storage, Attrs>);
    /**
     * Factory method to construct a new OxmlNode instance.
     * @param config - The OXML node configuration.
     * @returns A new OxmlNode instance.
     */
    static create<O extends Record<string, unknown> = Record<string, never>, S extends Record<string, unknown> = Record<string, never>, A extends Record<string, unknown> = Record<string, unknown>>(config: OxmlNodeConfig<O, S, A>): OxmlNode<O, S, A>;
}
//# sourceMappingURL=OxmlNode.d.ts.map