import { StoreState } from '@airgram-dev/store';
import { Airgram, BaseTdObject, Instance } from '@airgram-dev/web';
import { Store } from 'vuex';
import { UpdateHandler } from './types';
export interface AirgramProviderConfig {
    airgram: Airgram;
    store?: Store<any>;
}
declare class AirgramProvider {
    static install: any;
    readonly store: Store<{
        airgram: StoreState;
    }>;
    private _airgram;
    private readonly eventBus;
    constructor({ airgram, store }: AirgramProviderConfig);
    airgram: Instance;
    off<UpdateT extends BaseTdObject>(eventName: string, handler: UpdateHandler<UpdateT>): void;
    on<UpdateT extends BaseTdObject>(eventName: string, handler: UpdateHandler<UpdateT>): () => void;
    once<UpdateT extends BaseTdObject>(eventName: string, handler: UpdateHandler<UpdateT>): () => void;
    private listen;
}
export { AirgramProvider };
