import { Client, Option, Subscription } from "@opendaw/lib-std";
export type ClipboardEntry<T extends string = string> = {
    readonly type: T;
    readonly data: ArrayBufferLike;
};
export interface ClipboardHandler<E extends ClipboardEntry> {
    canCopy(client: Client): boolean;
    canCut(client: Client): boolean;
    canPaste(entry: ClipboardEntry, client: Client): boolean;
    copy(): Option<E>;
    cut(): Option<E>;
    paste(entry: ClipboardEntry): void;
}
export declare namespace ClipboardManager {
    type AnyEntry = ClipboardEntry;
    export const install: <E extends AnyEntry>(element: HTMLElement, handler: ClipboardHandler<E>) => Subscription;
    export {};
}
//# sourceMappingURL=ClipboardManager.d.ts.map