import { TelegramClient, Api } from 'telegram';
export declare function getClient(): Promise<TelegramClient>;
export declare function createClient(apiId: number, apiHash: string): Promise<TelegramClient>;
export declare function saveSession(client: TelegramClient): Promise<void>;
export declare function disconnectClient(): Promise<void>;
export declare function getMe(client: TelegramClient): Promise<Api.User>;
export interface ChatInfo {
    id: string;
    title: string;
    type: 'user' | 'group' | 'supergroup' | 'channel';
    username?: string;
    unreadCount: number;
    lastMessage?: string;
    lastMessageDate?: Date;
}
export declare function getDialogs(client: TelegramClient, limit?: number): Promise<ChatInfo[]>;
export interface MessageInfo {
    id: number;
    date: Date;
    sender: string;
    senderId?: string;
    text: string;
    replyToMsgId?: number;
    isOutgoing: boolean;
}
export declare function getMessages(client: TelegramClient, chatIdentifier: string, options?: {
    limit?: number;
    offsetId?: number;
    minDate?: Date;
    maxDate?: Date;
}): Promise<{
    messages: MessageInfo[];
    chatTitle: string;
}>;
export declare function searchMessages(client: TelegramClient, query: string, options?: {
    chat?: string;
    limit?: number;
}): Promise<{
    messages: MessageInfo[];
    chatTitle?: string;
}[]>;
export declare function sendMessage(client: TelegramClient, chatIdentifier: string, text: string, replyToMsgId?: number): Promise<Api.Message>;
export declare function getContactInfo(client: TelegramClient, identifier: string): Promise<{
    id: string;
    firstName?: string;
    lastName?: string;
    username?: string;
    phone?: string;
    bio?: string;
    isBot: boolean;
    isMutualContact: boolean;
}>;
export declare function getChatMembers(client: TelegramClient, chatIdentifier: string, options?: {
    adminsOnly?: boolean;
    limit?: number;
}): Promise<{
    id: string;
    name: string;
    username?: string;
    isAdmin: boolean;
}[]>;
export declare function getAdminGroups(client: TelegramClient): Promise<ChatInfo[]>;
export declare function parseDuration(duration: string): {
    seconds: number;
    isForever: boolean;
};
export declare function parseDurationToSeconds(duration: string): number;
export declare function muteChat(client: TelegramClient, chatIdentifier: string, duration?: string): Promise<{
    success: boolean;
    message: string;
}>;
export declare function unmuteChat(client: TelegramClient, chatIdentifier: string): Promise<{
    success: boolean;
    message: string;
}>;
export interface FolderInfo {
    id: number;
    title: string;
    includedChats: {
        id: string;
        title: string;
        type: string;
    }[];
    excludedChats: {
        id: string;
        title: string;
        type: string;
    }[];
    emoticon?: string;
}
export declare function getFolders(client: TelegramClient): Promise<FolderInfo[]>;
export declare function getFolder(client: TelegramClient, folderName: string): Promise<FolderInfo | null>;
export declare function addChatToFolder(client: TelegramClient, folderName: string, chatIdentifier: string): Promise<{
    success: boolean;
    message: string;
}>;
export declare function removeChatFromFolder(client: TelegramClient, folderName: string, chatIdentifier: string): Promise<{
    success: boolean;
    message: string;
}>;
export declare function kickUser(client: TelegramClient, chatIdentifier: string, userIdentifier: string): Promise<{
    success: boolean;
    message: string;
}>;
//# sourceMappingURL=client.d.ts.map