import { AccountResultDto } from "./accountAdapter";
export declare type GSuiteListAccountOptions = {
    domain: string;
    maxResults: number;
    showDeleted: boolean;
    viewType: string;
    fields: string;
    projection: string;
    orderBy: string;
};
export declare type AccountParametersDto = {
    primaryEmail: string;
    name: {
        givenName: string;
        familyName: string;
    };
    password: string;
    changePasswordAtNextLogin?: boolean;
    orgUnitPath?: string;
};
export declare type AccountResultDto = {
    kind: string;
    id: string;
    etag: string;
    primaryEmail: string;
    name: {
        givenName: string;
        familyName: string;
    };
    isAdmin: boolean;
    isDelegatedAdmin: boolean;
    creationTime: string;
    suspended: boolean;
    suspensionReason?: string;
    customerId: string;
    orgUnitPath: string;
    isMailboxSetup: boolean;
};
export declare type GSuiteAccountCreatorAdapter = (accountParametersDto: AccountParametersDto) => Promise<AccountResultDto>;
export declare type GSuiteAccountCatalogAdapter = (listAccountOptions: GSuiteListAccountOptions) => Promise<AccountResultDto[]>;
export declare type BuildAccountCreatorAdapter = (gSuiteClient: any) => GSuiteAccountCreatorAdapter;
export declare type BuildAccountCatalogAdapter = (gSuiteClient: any) => GSuiteAccountCatalogAdapter;
export declare const buildAccountCatalogAdapter: BuildAccountCatalogAdapter;
export declare const buildAccountCreatorAdapter: BuildAccountCreatorAdapter;
export declare const buildAccountRemoverAdapter: (gSuiteClient: any) => (userEmail: string) => Promise<boolean>;
