import { Interface } from '@ethersproject/abi';
import { Contract } from '@ethersproject/contracts';
import { Provider } from '@ethersproject/providers';
import { Abi, AragonArtifact, AragonManifest, Metadata, AppData, PathOptions } from '../types';
import ForwardingPath from './ForwardingPath';
import Organization from './Organization';
import Repo from './Repo';
import Role from './Role';
export default class App {
    #private;
    readonly address: string;
    readonly appId: string;
    readonly codeAddress: string;
    readonly contentUri?: string;
    readonly isForwarder?: boolean;
    readonly isUpgradeable?: boolean;
    readonly kernelAddress: string;
    readonly name?: string;
    readonly organization: Organization;
    readonly registry?: string;
    readonly registryAddress: string;
    readonly repoAddress?: string;
    readonly version?: string;
    constructor(data: AppData, metadata: Metadata, organization: Organization);
    static create(data: AppData, organization: Organization): Promise<App>;
    private orgConnector;
    get provider(): Provider;
    get artifact(): AragonArtifact;
    get manifest(): AragonManifest;
    get abi(): Abi;
    repo(): Promise<Repo>;
    roles(): Promise<Role[]>;
    toJSON(): never;
    ethersContract(): Contract;
    ethersInterface(): Interface;
    /**
     * Calculate the forwarding path for an app action
     * that invokes `methodSignature` with `params`.
     *
     * @param  {string} methodSignature
     * @param  {Array<*>} params
     * @param  {Object} options
     * @return {Promise<ForwardingPath>} An object that represents the forwarding path corresponding to an action.
     */
    intent(methodSignature: string, params: any[], options?: PathOptions): Promise<ForwardingPath>;
}
//# sourceMappingURL=App.d.ts.map