/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

%{C++
class nsWrapperCache;
%}

[ptr] native nsWrapperCachePtr(nsWrapperCache);

typedef unsigned long long DOMTimeStamp;
typedef double DOMHighResTimeStamp;

// Core
interface nsIDOMAttr;
interface nsIDOMCDATASection;
interface nsIDOMCharacterData;
interface nsIDOMComment;
interface nsIDOMDOMImplementation;
interface nsIDOMDocument;
interface nsIDOMDocumentFragment;
interface nsIDOMDocumentType;
interface nsIDOMElement;
interface nsIDOMNode;
interface nsIDOMNodeList;
interface nsIDOMProcessingInstruction;
interface nsIDOMText;
interface nsIDOMDOMStringList;
interface nsIDOMClientRect;
interface nsIDOMClientRectList;

// Needed for raises() in our IDL
interface DOMException;

// Style Sheets
interface nsIDOMStyleSheetList;
interface nsIDOMLinkStyle;
interface nsIDOMStyleSheet;
interface nsIDOMMediaList;

// Base
interface nsIDOMWindow;
interface nsIDOMWindowCollection;
interface nsIDOMPlugin;
interface nsIDOMPluginArray;
interface nsIDOMMimeType;
interface nsIDOMMimeTypeArray;
interface nsIDOMNavigator;
interface nsIDOMScreen;
interface nsIDOMHistory;

// Events
interface nsIDOMEvent;
interface nsIDOMEventTarget;
interface nsIDOMEventListener;

// HTML
interface nsIDOMHTMLElement;
interface nsIDOMHTMLFormElement;
interface nsIDOMHTMLCollection;
interface nsIDOMHTMLHeadElement;

// CSS
interface nsIDOMCSSValue;
interface nsIDOMCSSPrimitiveValue;
interface nsIDOMCSSRule;
interface nsIDOMCSSRuleList;
interface nsIDOMMozCSSKeyframeRule;
interface nsIDOMCSSFontFeatureValuesRule;
interface nsIDOMCSSStyleSheet;
interface nsIDOMCSSStyleDeclaration;
interface nsIDOMCounter;
interface nsIDOMRect;
interface nsIDOMCSSStyleRule;
interface nsIDOMCSSStyleRuleCollection;
interface nsIDOMHTMLTableCaptionElement;
interface nsIDOMHTMLTableSectionElement;

// Range
interface nsIDOMRange;

// Crypto
interface nsIDOMCRMFObject;
interface nsIDOMCrypto;
interface nsIDOMPkcs11;

// Used font face (for inspector)
interface nsIDOMFontFace;
interface nsIDOMFontFaceList;

// Power
interface nsIDOMMozPowerManager;
interface nsIDOMMozWakeLock;
