import { CdmCorpusContext, ResolvedAttribute } from '../../internal';
/**
 * This node maintains the attribute's state during projection and between stages of a operations
 * and links to collection of previous projection states
 * @internal
 */
export declare class ProjectionAttributeState {
    /**
     * Keep context for error logging
     */
    private ctx;
    /**
     * Current resolved attribute
     * @internal
     */
    currentResolvedAttribute: ResolvedAttribute;
    /**
     * Keep a list of original polymorphic source states
     * @internal
     */
    previousStateList: ProjectionAttributeState[];
    /**
     * The attribute ordinal originated from the array expansion operation.
     * @internal
     */
    ordinal?: number;
    /**
     * Create a new empty state
     */
    constructor(ctx: CdmCorpusContext);
    /**
     * Creates a copy of the state and sets its previous state to be itself
     * @internal
     */
    copy(): ProjectionAttributeState;
}
