import IAggSubRequest from './IAggSubRequest';
import { Bank, BankAggStatus, ConsentCreateResponse, ConsumeConsentResponse, ResourceDetailResponse } from '../models';
export default interface IBanksClient {
    getAvailables: (userId: number | string) => Promise<Bank[]>;
    getAggregationStatus: (bankId: string, userId: number | string) => Promise<BankAggStatus>;
    aggregationStatusSubscribe: (aggSubRequest: IAggSubRequest) => void;
    aggregationStatusUnsubscribe: () => void;
    createConsent: (bankId: string, userId: number | string, time: number | string) => Promise<ConsentCreateResponse>;
    consumeConsent: (authCode: string, token: string, state: string) => Promise<ConsumeConsentResponse>;
    getResources: (bankId: string, userId: number | string) => Promise<ResourceDetailResponse>;
    synchronize: (bankId: string, userId: number | string) => Promise<boolean>;
    authorize: (code: string, id_token: string, state: string) => Promise<boolean>;
    isRunningPolling: boolean;
}
