import { DataPrimitiveFormatter } from '../Formatter';
import { DataPoint } from '../DataPoint';
import { DataType } from '../DataPrimitive';
import { DataSeries } from '../DataSeries';
import { DataFrame } from '../DataFrame';
/**
 * Formatter that prepends a DataFrame, DataSeries, or DataPoint to a pre-existing DataFrame or DataSeries with compatible types.
 *
 * If prepending a DataFrame to another DataFrame, the DataFrames must have the same number of DataSeries.
 * For example, a DataFrame with 3 series such as `[[1, 2], [3, 4], [5, 6]]` cannot be prepended to a DataFrame with 2 series such as `[[7, 8], [9, 10]]`.
 *
 * Only the same DataPrimitive type or a DataPrimitive's composite DataPrimitives
 * (e.g. DataSeries or DataPoint for DataFrame, or a DataPoint for a DataSeries) can be prepended to the pre-existing DataPrimitive.
 *
 * ```js
 * <SampleViz
 *     context={{
 *         staticUser: 'All users',
 *         staticId: '*',
 *         additionalUsers: ['Andrew', 'Chanelle'],
 *         idsAsNumbers: [1, 2],
 *         users: '> primary | seriesByName("users") | prepend(staticUser)', // returns ['All users', 'Maurine', 'Jennings']
 *         ids: '> primary | seriesByName("ids") | prepend(staticId)' // returns ['*', '1', '2', '3']
 *         pathologicalIds: '> primary | seriesByName("idsAsNumbers") | prepend(staticId)' // throws an error, since `staticId` is a string, while the pre-existing series is composed of numbers
 *     }}
 *     options={{
 *         consolidatedUsers: '> primary | seriesByName("users") | prepend(additionalUsers)', // returns ['Andrew', 'Chanelle', 'Maurine', 'Jennings']
 *         // returns {
 *         //     columns: [['Maurine', 'Jennings', 'Maurine', 'Jennings'], ['1', '2', '1', '2']]
 *         //     fields: [{ name: 'users' }, { name: 'ids' }]
 *         // }
 *         prependingFrames: '> primary | prepend(primary)'
 *     }}
 *     dataSources={{
 *         primary: {
 *             data: {
 *                 columns: [['Maurine', 'Jennings'], ['1', '2']],
 *                 fields: [{ name: 'users' }, { name: 'ids' }]
 *             }
 *         }
 *     }}
 * />
 * ```
 */
export declare class Prepend implements DataPrimitiveFormatter<DataType, DataType> {
    private prependMe;
    constructor(d: any);
    format(subject: DataPoint<DataType> | DataSeries<DataType> | DataFrame<DataType>): DataPoint<DataType> | DataSeries<DataType> | DataFrame<DataType>;
    prependToFrame(subject: DataFrame<DataType>): DataFrame<DataType>;
    private prependToSeries;
    private prependAPointToEachSeriesOfFrame;
    private prependASeriesToEachSeriesOfFrame;
    private prependFrameToFrame;
    private prependSeriesToSeries;
    private prependPointToSeries;
}
