// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[DartPackage="mojo_services"]
module mojo;

interface Clipboard {
  enum Type {
    COPY_PASTE = 0,
    SELECTION = 1,
    DRAG = 2
  };

  // Mime type constants
  const string MIME_TYPE_TEXT = "text/plain";
  const string MIME_TYPE_HTML = "text/html";
  const string MIME_TYPE_URL = "text/url";

  // Returns a sequence number which uniquely identifies clipboard state.
  // Clients are able to assume that the clipboard contents are unchanged as
  // long as this number has not changed. This number is monotonically
  // increasing, is increased when the clipboard state changes, and is
  // provided by Windows, Linux, and Mac.
  GetSequenceNumber(Type clipboard_type) => (uint64 sequence);

  // Returns the available mime types. (Note: the chrome interface has a
  // |contains_filenames| parameter here, but it appears to always be set
  // to false.)
  GetAvailableMimeTypes(Type clipboard_types) => (array<string> types);

  // Returns the data associated with a Mime type, returning NULL if that data
  // doesn't exist. Note: because of the inherit raciness of clipboard access,
  // this may return NULL even if you just verified that it exists with
  // GetAvailableFormatMimeTypes(). We don't want to provide one API to return
  // the entire clipboard state because the combined size of the clipboard can
  // be megabytes, especially when image data is involved.
  ReadMimeType(Type clipboard_type, string mime_type) => (array<uint8>? data);

  // Writes a set of mime types to the clipboard. This will increment the
  // sequence number. In the case of an empty or null map, this will just
  // clear the clipboard.
  WriteClipboardData(Type clipboard_type, map<string, array<uint8>>? data);
};
