/**
 * Stateful transformer holding the accumulated attribution overlay.
 *
 * @extends {Transformer<any,any>}
 */
export class FullAttributionsTransformer extends Transformer<any, any> {
    /**
     * @param {import('../../schema.js').Schema<delta.Delta<any>>} $in
     * @param {import('../../schema.js').Schema<delta.Delta<any>>} $out
     */
    constructor($in: import("../../schema.js").Schema<delta.Delta<any>>, $out: import("../../schema.js").Schema<delta.Delta<any>>);
    /**
     * Content-free overlay: the full accumulated attribution at every document position (instruction
     * form). Mutated in place each change by `rebase` + `apply`.
     *
     * @type {delta.DeltaBuilderAny}
     */
    overlay: delta.DeltaBuilderAny;
}
/**
 * Template for {@link FullAttributionsTransformer}. The transform touches only the `attribution`
 * dimension (metadata, not part of the delta schema), so the output schema equals the input schema.
 *
 * @template {delta.DeltaConf} [IN=any]
 * @extends {Template<IN, IN>}
 */
export class FullAttributions<IN extends delta.DeltaConf = any> extends Template<IN, IN> {
    /**
     * @param {import('../../schema.js').Schema<delta.Delta<IN>>} $d
     */
    constructor($d: import("../../schema.js").Schema<delta.Delta<IN>>);
}
export function fullAttributions<IN extends delta.DeltaConf>($d: import("../../schema.js").Schema<delta.Delta<IN>>): FullAttributions<IN>;
import { Transformer } from './core.js';
import * as delta from '../delta.js';
import { Template } from './core.js';
//# sourceMappingURL=full-attributions.d.ts.map