import { AxiosResponse } from 'axios';
import { Config } from './config';
import Request from './request';
export interface TableColumn {
    name: string;
    type: string;
    casdoorName: string;
    isKey: boolean;
    isHashed: boolean;
    values?: string[];
}
export interface Syncer {
    owner: string;
    name: string;
    createdTime: string;
    organization: string;
    type?: string;
    host: string;
    port: number;
    user: string;
    password: string;
    databaseType: string;
    database: string;
    table: string;
    tablePrimaryKey?: string;
    tableColumns?: TableColumn[];
    affiliationTable?: string;
    avatarBaseUrl?: string;
    errorText?: string;
    syncInterval?: number;
    isReadOnly?: boolean;
    isEnabled?: boolean;
}
export declare class SyncerSDK {
    private config;
    private readonly request;
    constructor(config: Config, request: Request);
    getSyncers(): Promise<AxiosResponse<{
        data: Syncer[];
    }, any>>;
    getSyncer(id: string): Promise<AxiosResponse<{
        data: Syncer;
    }, any>>;
    modifySyncer(method: string, syncer: Syncer): Promise<AxiosResponse<Record<string, unknown>, any>>;
    addSyncer(syncer: Syncer): Promise<AxiosResponse<Record<string, unknown>, any>>;
    updateSyncer(syncer: Syncer): Promise<AxiosResponse<Record<string, unknown>, any>>;
    deleteSyncer(syncer: Syncer): Promise<AxiosResponse<Record<string, unknown>, any>>;
}
