import type { Mark, MarkSpec, Attrs } from '@atlaskit/editor-prosemirror/model';
/**
 * This annotation is purely for reference, & does _nothing_ given annotating
 * `minLength` on an array of strings is not supported with our schema+spec
 * generator.
 *
 * We're keeping it to signal that data consumer `sources` shouldn't be empty
 * strings
 *
 // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
 * // @minLength 1
 */
type DataConsumerSource = string;
export interface DataConsumerAttributes {
    /**
     // eslint-disable-next-line eslint-plugin-jsdoc/check-tag-names
     * @minItems 1
     */
    sources: Array<DataConsumerSource>;
}
/**
 * @name dataConsumer_mark
 * @description This mark is used for metadata surrounding a node consuming data
 * from a given source node
 */
export interface DataConsumerDefinition {
    attrs: DataConsumerAttributes;
    type: 'dataConsumer';
}
export interface DataConsumerMark extends Mark {
    attrs: DataConsumerAttributes;
}
export declare const dataConsumer: MarkSpec;
/**
 * We want to ensure any "invalid ADF" doesn't get serialised, but the entire
 * mark itself is not valid without a non-empty `sources`.
 *
 * We _almost could_ simply return `null` if sources length is < 0 & would fit
 * the type signature of prosemirror-model's `fragment` but not `mark`'s toJSON.
 *
 * So we'll leave any extra transformation checks in
 * `editor-json-transformer`(?)
 */
export declare const toJSON: (mark: Mark) => {
    attrs: Attrs;
    type: string;
};
export {};
