import { PickWith } from '../../../../shared/typescript-utils';
import { ActorFollowModel } from '../../../models/actor/actor-follow';
import { MActor, MActorChannelAccountActor, MActorDefault, MActorDefaultAccountChannel, MActorDefaultChannelId, MActorFormattable, MActorHost, MActorUsername } from './actor';
declare type Use<K extends keyof ActorFollowModel, M> = PickWith<ActorFollowModel, K, M>;
export declare type MActorFollow = Omit<ActorFollowModel, 'ActorFollower' | 'ActorFollowing'>;
export declare type MActorFollowFollowingHost = MActorFollow & Use<'ActorFollowing', MActorUsername & MActorHost>;
export declare type MActorFollowActors = MActorFollow & Use<'ActorFollower', MActor> & Use<'ActorFollowing', MActor>;
export declare type MActorFollowActorsDefault = MActorFollow & Use<'ActorFollower', MActorDefault> & Use<'ActorFollowing', MActorDefault>;
export declare type MActorFollowFull = MActorFollow & Use<'ActorFollower', MActorDefaultAccountChannel> & Use<'ActorFollowing', MActorDefaultAccountChannel>;
export declare type MActorFollowActorsDefaultSubscription = MActorFollow & Use<'ActorFollower', MActorDefault> & Use<'ActorFollowing', MActorDefaultChannelId>;
export declare type MActorFollowSubscriptions = MActorFollow & Use<'ActorFollowing', MActorChannelAccountActor>;
export declare type MActorFollowFormattable = Pick<MActorFollow, 'id' | 'score' | 'state' | 'createdAt' | 'updatedAt'> & Use<'ActorFollower', MActorFormattable> & Use<'ActorFollowing', MActorFormattable>;
export {};
//# sourceMappingURL=actor-follow.d.ts.map