import { Action, EmbeddedEntity, EmbeddedLink, Entity, Field, Link } from '../models';
import { SirenElementVisitor } from './siren-element-visitor';
/**
 * Composes multiple {@linkcode SirenElementVisitor}s (from left to right) into a single Visitor.
 */
export declare class CompositeVisitor implements SirenElementVisitor {
    readonly visitors: SirenElementVisitor[];
    constructor(visitors: SirenElementVisitor[]);
    visitAction(action: Action): Promise<void>;
    visitEmbeddedEntity(entity: EmbeddedEntity): Promise<void>;
    visitEmbeddedLink(link: EmbeddedLink): Promise<void>;
    visitEntity(entity: Entity): Promise<void>;
    visitField(field: Field): Promise<void>;
    visitLink(link: Link): Promise<void>;
    private apply;
}
