/**
 * Defines functions used to extract components, extensions, and assets from
 * an AIA file.
 *
 *
 * @file   This file defines the AIAReader class.
 * @author vishwas@kodular.io (Vishwas Adiga)
 * @since  1.0.0
 * @license
 */
import { type Entry } from "@zip.js/zip.js";
import { Project } from './project.js';
import { Screen } from "./screen.js";
import { Extension } from "./extension.js";
import { Asset } from "./asset.js";
/**
 * Class that reads/parses an AIA file.
 *
 * @since  1.0.0
 * @access public
 */
export declare class AIAReader {
    /**
     * Unzips and reads every file in an AIA and then parses it.
     *
     * @since 1.0.0
     * @access public
     *
     * @param {Blob | String} fileOrUrl The AIA file, or a URL pointing to it.
     *
     * @return {Promise} A Promise object, when resolved, yields the parsed
     *                   AIProject object.
     */
    static parse(fileOrUrl: Blob | string): Promise<Project>;
    /**
     * Asynchronously reads every screen in the project.
     *
     * @since 1.0.0
     * @access private
     *
     * @class
     * @param {Array}     files   An array of files that have a filetype .scm or .bky.
     * @return {Promise<Screen>} A Promise object, when resolved, yields the parsed
     *
     */
    static generateScreens(files: Entry[]): Promise<Screen[]>;
    /**
     * Asynchronously reads every extension used in the project.
     *
     * @since 1.0.0
     * @access private
     *
     * @class
     * @param {Array} files An array of files that have a filetype .json.
     *
     * @return {Promise<Array>} An array of AIExtension objects for the project being read.
     */
    static generateExtensions(files: Entry[]): Promise<Extension[]>;
    /**
     * Asynchronously reads every asset uploaded to the project.
     *
     * @since 1.0.0
     * @access private
     *
     * @class
     * @param {Array} files An array of files present in the assets folderr of the AIA.
     *
     * @return {Promise<Array>} An array of AIAsset objects for the project being read.
     */
    static generateAssets(files: Entry[]): Promise<Asset[]>;
}
