// Copyright 2018 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://wicg.github.io/writable-files/#filesystemdirectoryhandle
[
    RuntimeEnabled=WritableFiles
] interface FileSystemDirectoryHandle : FileSystemBaseHandle {
    [CallWith=ScriptState] Promise<FileSystemFileHandle> getFile(USVString name, optional FileSystemGetFileOptions options);
    [CallWith=ScriptState] Promise<FileSystemDirectoryHandle> getDirectory(USVString name, optional FileSystemGetDirectoryOptions options);
    [CallWith=ScriptState] object getEntries();

    [CallWith=ScriptState] Promise<void> removeRecursively();

    [CallWith=ScriptState]
    static Promise<FileSystemDirectoryHandle> getSystemDirectory(GetSystemDirectoryOptions options);
};
