import type { MaybeCallable, PickPartial } from "../internal/misc";
export interface TimelineStorageOptions {
    merge?: (dataStrs: string[]) => string;
    maxChunksPerPrincipal?: MaybeCallable<number>;
}
/**
 * An abstract class that defines the interface for loading and storing
 * timelines per VC principals.
 */
export declare abstract class TimelineStorage {
    /** Default values for the constructor options. */
    static readonly DEFAULT_OPTIONS: Required<PickPartial<TimelineStorageOptions>>;
    /** Client configuration options. */
    readonly options: Required<TimelineStorageOptions>;
    /**
     * Loads the timelines from the storage for a given principal.
     */
    abstract load(principal: string): Promise<string[]>;
    /**
     * Saves the timelines in the storage for a given principal.
     */
    abstract save(principal: string, dataStr: string): Promise<void>;
    /**
     * Initializes an instance of TimelineStorage.
     */
    constructor(options: TimelineStorageOptions);
}
//# sourceMappingURL=TimelineStorage.d.ts.map