import type { Principal } from "@dfinity/principal";
import type { QueryParams } from "../types/query.params";
export declare abstract class Canister<T> {
    private readonly id;
    protected readonly service: T;
    protected readonly certifiedService: T;
    protected constructor(id: Principal, service: T, certifiedService: T);
    get canisterId(): Principal;
    protected caller: ({ certified }: QueryParams) => T;
}
