import { FunctionProperties, PickWith } from '../../../../shared/typescript-utils';
import { AccountModel } from '../../../models/account/account';
import { MActor, MActorAPAccount, MActorAPI, MActorAudience, MActorDefault, MActorDefaultLight, MActorFormattable, MActorId, MActorServer, MActorSummary, MActorSummaryFormattable, MActorUrl } from '../actor';
import { MChannelDefault } from '../video/video-channels';
import { MAccountBlocklistId } from './account-blocklist';
declare type Use<K extends keyof AccountModel, M> = PickWith<AccountModel, K, M>;
export declare type MAccount = Omit<AccountModel, 'Actor' | 'User' | 'Application' | 'VideoChannels' | 'VideoPlaylists' | 'VideoComments' | 'BlockedBy'>;
export declare type MAccountId = Pick<MAccount, 'id'>;
export declare type MAccountUserId = Pick<MAccount, 'userId'>;
export declare type MAccountUrl = Use<'Actor', MActorUrl>;
export declare type MAccountAudience = Use<'Actor', MActorAudience>;
export declare type MAccountIdActor = MAccountId & Use<'Actor', MActor>;
export declare type MAccountIdActorId = MAccountId & Use<'Actor', MActorId>;
export declare type MAccountDefault = MAccount & Use<'Actor', MActorDefault>;
export declare type MAccountDefaultChannelDefault = MAccount & Use<'Actor', MActorDefault> & Use<'VideoChannels', MChannelDefault[]>;
export declare type MAccountLight = MAccount & Use<'Actor', MActorDefaultLight>;
export declare type MAccountActor = MAccount & Use<'Actor', MActor>;
export declare type MAccountServer = MAccount & Use<'Actor', MActorServer>;
export declare type MAccountSummary = FunctionProperties<MAccount> & Pick<MAccount, 'id' | 'name'> & Use<'Actor', MActorSummary>;
export declare type MAccountSummaryBlocks = MAccountSummary & Use<'BlockedBy', MAccountBlocklistId[]>;
export declare type MAccountAPI = MAccount & Use<'Actor', MActorAPI>;
export declare type MAccountSummaryFormattable = FunctionProperties<MAccount> & Pick<MAccount, 'id' | 'name'> & Use<'Actor', MActorSummaryFormattable>;
export declare type MAccountFormattable = FunctionProperties<MAccount> & Pick<MAccount, 'id' | 'name' | 'description' | 'createdAt' | 'updatedAt' | 'userId'> & Use<'Actor', MActorFormattable>;
export declare type MAccountAP = Pick<MAccount, 'name' | 'description'> & Use<'Actor', MActorAPAccount>;
export {};
//# sourceMappingURL=account.d.ts.map