import { Pipeline, RawPipeline } from "..";
export declare class PipeLineIsHelper {
    limit: (pipeline: Pipeline) => pipeline is {
        limit: number;
    } & {
        query?: undefined;
        sort?: undefined;
        skip?: undefined;
        populate?: undefined;
        project?: undefined;
        withCount?: undefined;
        rawPipeline?: undefined;
        invisible?: undefined;
        addFields?: undefined;
        count?: undefined;
    };
    skip: (pipeline: Pipeline) => pipeline is {
        skip: number;
    } & {
        query?: undefined;
        sort?: undefined;
        limit?: undefined;
        populate?: undefined;
        project?: undefined;
        withCount?: undefined;
        rawPipeline?: undefined;
        invisible?: undefined;
        addFields?: undefined;
        count?: undefined;
    };
    sort: (pipeline: Pipeline) => pipeline is {
        sort: {
            [x: string]: any;
        };
    } & {
        query?: undefined;
        limit?: undefined;
        skip?: undefined;
        populate?: undefined;
        project?: undefined;
        withCount?: undefined;
        rawPipeline?: undefined;
        invisible?: undefined;
        addFields?: undefined;
        count?: undefined;
    };
    project: (pipeline: Pipeline) => pipeline is {
        project: {
            [x: string]: any;
        };
    } & {
        query?: undefined;
        sort?: undefined;
        limit?: undefined;
        skip?: undefined;
        populate?: undefined;
        withCount?: undefined;
        rawPipeline?: undefined;
        invisible?: undefined;
        addFields?: undefined;
        count?: undefined;
    };
    addFields: (pipeline: Pipeline) => pipeline is {
        addFields: {
            [x: string]: any;
        };
    } & {
        query?: undefined;
        sort?: undefined;
        limit?: undefined;
        skip?: undefined;
        populate?: undefined;
        project?: undefined;
        withCount?: undefined;
        rawPipeline?: undefined;
        invisible?: undefined;
        count?: undefined;
    };
    query: (pipeline: Pipeline) => pipeline is {
        query: {
            [x: string]: any;
        };
    } & {
        sort?: undefined;
        limit?: undefined;
        skip?: undefined;
        populate?: undefined;
        project?: undefined;
        withCount?: undefined;
        rawPipeline?: undefined;
        invisible?: undefined;
        addFields?: undefined;
        count?: undefined;
    };
    rawPipeline: (pipeline: Pipeline) => pipeline is {
        rawPipeline: any;
    } & {
        query?: undefined;
        sort?: undefined;
        limit?: undefined;
        skip?: undefined;
        populate?: undefined;
        project?: undefined;
        withCount?: undefined;
        invisible?: undefined;
        addFields?: undefined;
        count?: undefined;
    };
    populate: (pipeline: Pipeline) => pipeline is {
        parentIdField: string;
        myIdField: string;
        field: string;
        populate: import("..").PopulatePipelineOptions;
    } & {
        query?: undefined;
        sort?: undefined;
        limit?: undefined;
        skip?: undefined;
        project?: undefined;
        withCount?: undefined;
        rawPipeline?: undefined;
        invisible?: undefined;
        addFields?: undefined;
        count?: undefined;
    };
    count: (pipeline: Pipeline) => pipeline is {
        count: true;
        countKey: string;
    } & {
        query?: undefined;
        sort?: undefined;
        limit?: undefined;
        skip?: undefined;
        populate?: undefined;
        project?: undefined;
        withCount?: undefined;
        rawPipeline?: undefined;
        invisible?: undefined;
        addFields?: undefined;
    };
    withCount: (pipeline: Pipeline) => pipeline is {
        withCount: true;
        countKey: string;
        docsKey: string;
        docsPipelines: Pipeline[];
    } & {
        query?: undefined;
        sort?: undefined;
        limit?: undefined;
        skip?: undefined;
        populate?: undefined;
        project?: undefined;
        rawPipeline?: undefined;
        invisible?: undefined;
        addFields?: undefined;
        count?: undefined;
    };
    countLike: (pipeline: Pipeline) => pipeline is {
        withCount: true;
        countKey: string;
        docsKey: string;
        docsPipelines: Pipeline[];
    } & {
        query?: undefined;
        sort?: undefined;
        limit?: undefined;
        skip?: undefined;
        populate?: undefined;
        project?: undefined;
        rawPipeline?: undefined;
        invisible?: undefined;
        addFields?: undefined;
        count?: undefined;
    };
    singleRequiredPopulation: (pipeline: Pipeline) => pipeline is {
        parentIdField: string;
        myIdField: string;
        field: string;
        populate: import("..").PopulatePipelineOptions;
    } & {
        query?: undefined;
        sort?: undefined;
        limit?: undefined;
        skip?: undefined;
        project?: undefined;
        withCount?: undefined;
        rawPipeline?: undefined;
        invisible?: undefined;
        addFields?: undefined;
        count?: undefined;
    };
    changingDocCount: (pipeline: Pipeline) => boolean;
    changingDocOrder: (pipeline: Pipeline) => boolean;
    changingCountOrOrder: (pipeline: Pipeline) => boolean;
    orderAndCountImportant: (pipeline: Pipeline) => boolean;
    orderAndCountImportantForRawPipeline: (pipeline: RawPipeline) => boolean;
    rawPipelineChangingDocOrder: (pipeline: RawPipeline) => boolean;
    rawPipelineChangingDocCount: (pipeline: RawPipeline) => boolean;
}
export declare const defaultPipelineIs: PipeLineIsHelper;
export declare type PipelineTypes = "query" | "project" | "addFields" | "sort" | "populate" | "limit" | "skip" | "withCount" | "count" | "rawPipeline";
export declare const getPipelineType: (pipeline: Pipeline, is?: PipeLineIsHelper) => PipelineTypes | null;
