/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * 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/.
 */

#ifndef org_freedesktop_PackageKit_XModify_idl
#define org_freedesktop_PackageKit_XModify_idl

#include <com/sun/star/uno/XInterface.idl>

module org
{
module freedesktop
{
module PackageKit
{
/**
 *  The interface used for modifying the package database.
 *
 * @sa
 * https://git.gnome.org/browse/gnome-software/tree/src/org.freedesktop.PackageKit.Modify2.xml
 * for documentation of the corresponding D-Bus interface
 */
interface XModify : com::sun::star::uno::XInterface
{
    /**
     * Installs local package sequence< string > files or service packs.
     * @since LibreOffice 4.0
     */

    void InstallPackageFiles([in] sequence< string > files, [in] string interaction);

    /**
     * Installs sequence< string > packages to provide sequence< string > files.
     * @since LibreOffice 4.0
     */

    void InstallProvideFiles([in] sequence< string > files, [in] string interaction);

    /**
     * Installs sequence< string > packages to provide sequence< string > files.
     * @since LibreOffice 4.0
     */

    void InstallCatalogs([in] sequence< string > files, [in] string interaction);

    /**
     * Installs sequence< string > packages from a configured software source.
     * @since LibreOffice 4.0
     */

    void InstallPackageNames([in] sequence< string > packages, [in] string interaction);

    /**
     * Installs mimetype handlers from a configured software source.
     * @since LibreOffice 4.0
     */

    void InstallMimeTypes([in] sequence< string > mimeTypes, [in] string interaction);

    /**
     * Installs fontconfig resources ( [in] usually fonts) from a configured software source.
     * @since LibreOffice 4.0
     */

    void InstallFontconfigResources([in] sequence< string > resources, [in] string interaction);

    /**
     * Installs GStreamer resources ( [in] usually codecs) from a configured software source.
     * @since LibreOffice 4.0
     */

    void InstallGStreamerResources([in] sequence< string > resources, [in] string interaction);

    /**
     * Installs resources of a given type from a configured software source.
     * @since LibreOffice 4.0
     */

    void InstallResources([in] sequence< string > types, [in] sequence< string > resources, [in] string interaction);

    /**
     * Removes sequence< string > packages that provide the given local sequence< string > files.
     * @since LibreOffice 4.0
     */

    void RemovePackageByFiles([in] sequence< string > files, [in] string interaction);

    /**
     * Installs printer drivers from a configured software source.
     * @since LibreOffice 4.0
     */

    void InstallPrinterDrivers([in] sequence< string > files, [in] string interaction);
};

} ; // PackageKit
} ; // freedesktop
} ; // org


#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
