import { VegaSlimmer } from '../../vega-slimmer/vega-slimmer-core';
import { Nullable } from '../../types/general';
import { VegaInternalEventID } from '../event-manager/event-id/vega-internal-event-id';
import { ColumnRenderInputModel } from '../../components/vega-table/slimmers/controllers/dto/column-render-input-model';
/**
 * Shared render-input consumer APIs for vega-table child components.
 *
 * This slimmer centralizes remote invocation and change-manager wiring
 * for table render-input retrieval/updates.
 *
 * The slimmer automatically registers and removes the change observer during
 * connected/disconnected lifecycle hooks via {@link MapToComponentMethod}.
 */
export declare class VegaTableChildRenderInputConsumerSlimmer extends VegaSlimmer {
  host: HTMLVegaTableElement;
  renderInput: Nullable<ColumnRenderInputModel | ColumnRenderInputModel[]>;
  private observer;
  private table;
  private observerSubject;
  constructor(subject: VegaInternalEventID);
  /**
   * Fetch and update render input before each render cycle.
   */
  componentWillRenderInput(): void;
  /**
   * Register render-input change observer when the component connects.
   */
  connectRenderInputObserver(): void;
  /**
   * Unregister render-input change observer when the component disconnects.
   */
  disconnectRenderInputObserver(): void;
  /**
   * Fetch render input for a table child node through remote invocation.
   *
   * @template TRenderInput
   * @returns {Nullable<TRenderInput>} The render input associated with the host, or null when table is not found.
   */
  fetchRenderInput<TRenderInput>(): Nullable<TRenderInput>;
  /**
   * Create and register a render-input change observer on the given table.
   */
  private registerRenderInputChangeObserver;
  /**
   * Remove a previously registered render-input change observer from the given table.
   */
  private unregisterRenderInputChangeObserver;
}
