/// <reference types="node" />
import { ConfigType } from './index.js';
export declare class IgnoringFileError extends Error {
    constructor(message: string);
}
export declare class FunctionProcessingError extends Error {
    originalError: Error;
    constructor(message: string, error: Error);
}
interface AppConfigFile {
    content_type?: string;
    data?: string;
    date_uploaded?: string;
    ext?: string;
    id?: string;
    length?: number;
    md5?: string;
    url?: string;
}
/**
 * An app configuration as defined by the Swell API. This implies that the
 * app & the configuration are saved to the API.
 */
export declare abstract class AppConfig {
    appConfigId?: string;
    appPath: string;
    byteSize?: number;
    date_created?: string;
    date_updated?: string;
    file?: AppConfigFile;
    file_path?: string;
    fileContent?: string;
    fileData?: Buffer;
    fileHash?: string;
    filePath: string;
    hash?: string;
    id?: string;
    mbSize?: number;
    name?: string;
    parent_id?: string;
    slug?: string;
    values: {
        [key: string]: any;
    };
    version?: string;
    constructor(attrs?: Partial<AppConfig>);
    static create(attrs?: Partial<AppConfig>): AppConfig;
    isRootConfig(configDir: string): boolean;
    postData(): Promise<any>;
    prepareFileData(): any;
    abstract hasValues: boolean;
    /** build the JSON used when making requests (usually push) to the API */
    protected abstract preparePostData(postData: any): Promise<any>;
    abstract type: ConfigType;
}
export {};
