import { GSuiteConfig } from "./client";
export declare type GetGDriveFilesInFolderAdapter = (targetFolderId: string) => Promise<string[]>;
export declare type BuildGetGDriveFilesInFolderAdapter = (gSuiteConfig: GSuiteConfig) => GetGDriveFilesInFolderAdapter;
export declare type ListGDriveFilesInFoldersAdapter = (folderIds: string[]) => Promise<GDriveFileMetaInfoDto[]>;
export declare type BuildListGDriveFilesInFoldersAdapter = (gSuiteConfig: GSuiteConfig) => ListGDriveFilesInFoldersAdapter;
export declare type MoveGDriveFileToFolderAdapter = (fileId: string, targetFolderId: string) => Promise<boolean>;
export declare type BuildMoveGDriveFileToFolderAdapter = (gSuiteConfig: GSuiteConfig) => MoveGDriveFileToFolderAdapter;
export declare type UpdateGDriveFileParentFolderAdapter = (fileId: string, currentParentIds: string[], targetFolderId: string) => Promise<boolean>;
export declare type BuildUpdateGDriveFileParentFolderAdapter = (gSuiteConfig: GSuiteConfig) => UpdateGDriveFileParentFolderAdapter;
export declare type ReadGDriveFileAsyncHandler = (gdriveClient: any, fileId: string, fileName: string) => Promise<string>;
export declare type ListGDriveFilePermissionsAdapter = (fileId: string) => Promise<GDrivePermissionDto[]>;
export declare type BuildListGDriveFilePermissionsAdapter = (gSuiteConfig: GSuiteConfig) => ListGDriveFilePermissionsAdapter;
export declare type RemoveGDriveFilePermissionsAdapter = (fileId: string, permissionIds: string[], impersonationEmail?: string) => Promise<GDrivePermissionStatusDto[]>;
export declare type BuildRemoveGDriveFilePermissionsAdapter = (gSuiteConfig: GSuiteConfig) => RemoveGDriveFilePermissionsAdapter;
export declare type AddGDriveFilePermissionsAdapter = (fileId: string, permissions: GDrivePermissionDto[], impersonationEmail?: string) => Promise<GDrivePermissionDto[]>;
export declare type BuildAddGDriveFilePermissionsAdapter = (gSuiteConfig: GSuiteConfig) => AddGDriveFilePermissionsAdapter;
export declare type GDriveFileMetaInfoDto = {
    id: string;
    name: string;
    mimeType?: string;
    fileExtension?: string;
    size?: number;
    trashed?: boolean;
    createdTime?: string;
    modifiedTime?: string;
    parents?: string[];
    owners?: GDriveFileOwnerDto[];
};
export declare type GDriveFileOwnerDto = {
    permissionId: string;
    emailAddress: string;
    displayName?: string;
    photoLink?: string;
    me?: boolean;
};
export declare type GDrivePermissionDto = {
    id?: string;
    role: string;
    type: string;
    emailAddress: string;
};
export declare type GDrivePermissionStatusDto = {
    fileId: string;
    permissionId: string;
    removed: boolean;
};
export declare const GDRIVE_SCOPES_READ: string[];
export declare const GDRIVE_SCOPES_WRITE: string[];
export declare const GDRIVE_VERSION = "v3";
export declare const GDRIVE_FINDFILESINFOLDER_PAGELIMIT = 1000;
export declare const GDRIVE_LIST_ORDERBY = "createdTime desc";
export declare const GDRIVE_FILE_FIELDS = "id, mimeType, name, fileExtension, size, trashed, createdTime, modifiedTime, parents, owners";
export declare const buildGetGDriveFilesInFolderAdapter: BuildGetGDriveFilesInFolderAdapter;
export declare const buildListGDriveFilesInFoldersAdapter: BuildListGDriveFilesInFoldersAdapter;
export declare const buildUpdateGDriveFileParentFolderAdapter: BuildUpdateGDriveFileParentFolderAdapter;
export declare const buildListGDriveFilePermissionsAdapter: BuildListGDriveFilePermissionsAdapter;
export declare const buildRemoveGDriveFilePermissionsAdapter: BuildRemoveGDriveFilePermissionsAdapter;
export declare const buildAddGDriveFilePermissionsAdapter: BuildAddGDriveFilePermissionsAdapter;
