/**
 * Copyright (c) OpenLens Maintainers. All rights reserved.
 * Licensed under MIT License. See LICENSE in root directory for more information.
 */
import type { ObservableHistory } from "mobx-observable-history";
export interface PageParamInit<Value = any> {
    name: string;
    defaultValue?: Value;
    parse?(value: string | string[]): Value;
    stringify?(value: Value): string | string[];
}
export interface PageParamDependencies {
    readonly history: ObservableHistory<unknown>;
}
export declare class PageParam<Value = any> {
    protected readonly dependencies: PageParamDependencies;
    private init;
    readonly name: string;
    readonly isMulti: boolean;
    constructor(dependencies: PageParamDependencies, init: PageParamInit<Value>);
    get defaultValue(): Value | undefined;
    parse(values: string | string[]): Value;
    stringify(value?: Value): string[];
    get(): Value;
    set(value: Value, { mergeGlobals, replaceHistory }?: {
        mergeGlobals?: boolean | undefined;
        replaceHistory?: boolean | undefined;
    }): void;
    /**
     * Set stringified raw value(s) and update `document.location.search`
     * @param {string | string[]} value
     */
    setRaw(value: string | string[]): void;
    /**
     * Get stringified raw value(s) from `document.location.search`
     */
    getRaw(): string | string[];
    clear(): void;
    toString({ mergeGlobals, value }?: {
        mergeGlobals?: boolean | undefined;
        value?: Value | undefined;
    }): string;
}
