import { z } from 'zod';
import { BananaConfig } from '../core';
export declare const SourceType: z.ZodEnum<["gitlab", "github", "todo.txt", "git-cli"]>;
export type SourceType = z.infer<typeof SourceType>;
export interface CommonBananaReporterObj {
    id: string;
    date: string;
    description: string;
    username?: string;
    projectId?: string;
    projectName?: string;
    type: SourceType;
    /**
     * the raw source object,
     * included only when --include-raw-object is provided
     */
    __raw?: any;
}
export declare abstract class IntegrationBase {
    static type: SourceType;
    constructor(_rawConfig: unknown, _bananaConfig: BananaConfig);
    toBananaReporterObj(_rawData: any): Promise<CommonBananaReporterObj> | CommonBananaReporterObj;
    fetchData(): Promise<CommonBananaReporterObj[]>;
}
