/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { URI } from "./uri.mjs";
interface IDataTransferFile {
    readonly name: string;
    readonly uri?: URI;
    data(): Promise<Uint8Array>;
}
export interface IDataTransferItem {
    readonly id: string;
    asString(): Thenable<string>;
    asFile(): IDataTransferFile | undefined;
    value: any;
}
export declare function createStringDataTransferItem(stringOrPromise: string | Promise<string>): IDataTransferItem;
export declare function createFileDataTransferItem(fileName: string, uri: URI | undefined, data: () => Promise<Uint8Array>): IDataTransferItem;
export declare class VSDataTransfer {
    private readonly _entries;
    get size(): number;
    has(mimeType: string): boolean;
    get(mimeType: string): IDataTransferItem | undefined;
    append(mimeType: string, value: IDataTransferItem): void;
    replace(mimeType: string, value: IDataTransferItem): void;
    delete(mimeType: string): void;
    entries(): Iterable<[string, IDataTransferItem]>;
    values(): Iterable<IDataTransferItem>;
    forEach(f: (value: IDataTransferItem, key: string) => void): void;
    private toKey;
}
export declare const UriList: Readonly<{
    create: (entries: ReadonlyArray<string | URI>) => string;
    split: (str: string) => string[];
    parse: (str: string) => string[];
}>;
export {};
