// Copyright 2017 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.

// https://w3c.github.io/webpayments-payment-apps-api/#payment-instruments

[
    RuntimeEnabled=PaymentApp,
    Exposed=(Window,Worker)
] interface PaymentInstruments {
    [CallWith=ScriptState, ImplementedAs=deleteInstrument] Promise<boolean> delete(DOMString instrumentKey);
    [CallWith=ScriptState] Promise<any> get(DOMString instrumentKey);
    [CallWith=ScriptState] Promise<sequence<DOMString>> keys();
    [CallWith=ScriptState] Promise<boolean> has(DOMString instrumentKey);
    [CallWith=ScriptState, RaisesException] Promise<void> set(DOMString instrumentKey, PaymentInstrument details);
    [CallWith=ScriptState] Promise<void> clear();
};
