#import <DOM/Event.idl>
#import <HTML/Storage.idl>

// https://html.spec.whatwg.org/multipage/webstorage.html#storageevent
[Exposed=Window]
interface StorageEvent : Event {
    constructor(DOMString type, optional StorageEventInit eventInitDict = {});

    readonly attribute DOMString? key;
    readonly attribute DOMString? oldValue;
    readonly attribute DOMString? newValue;
    readonly attribute USVString url;
    readonly attribute Storage? storageArea;

    undefined initStorageEvent(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false, optional DOMString? key = null, optional DOMString? oldValue = null, optional DOMString? newValue = null, optional USVString url = "", optional Storage? storageArea = null);
};

// https://html.spec.whatwg.org/multipage/webstorage.html#storageeventinit
dictionary StorageEventInit : EventInit {
    DOMString? key = null;
    DOMString? oldValue = null;
    DOMString? newValue = null;
    USVString url = "";
    Storage? storageArea = null;
};
