import { LayoutSession } from '@jbrowse/core/pluggableElementTypes/renderers/LayoutSession';
import type { FilterBy, SortedBy } from '../shared/types';
import type { CachedLayout, LayoutSessionProps } from '@jbrowse/core/pluggableElementTypes/renderers/LayoutSession';
import type GranularRectLayout from '@jbrowse/core/util/layouts/GranularRectLayout';
import type MultiLayout from '@jbrowse/core/util/layouts/MultiLayout';
export interface PileupLayoutSessionProps extends LayoutSessionProps {
    filterBy: FilterBy;
    sortedBy: SortedBy;
    showSoftClip: boolean;
}
type MyMultiLayout = MultiLayout<GranularRectLayout<unknown>, unknown>;
interface CachedPileupLayout extends CachedLayout {
    props: PileupLayoutSessionProps;
}
export declare class PileupLayoutSession extends LayoutSession {
    props: PileupLayoutSessionProps;
    cachedLayout: CachedPileupLayout | undefined;
    constructor(props: PileupLayoutSessionProps);
    update(props: PileupLayoutSessionProps): this;
    cachedLayoutIsValid(cachedLayout: CachedPileupLayout): boolean;
    get layout(): MyMultiLayout;
}
export {};
