import type { HTMLAttributes } from 'vue';
import type { XEmbedTweetData } from '../registry/x-embed.js';
type __VLS_Props = {
/**
* The tweet ID to embed
*/
tweetId: string;
/**
* Custom API endpoint for fetching tweet data
*/
apiEndpoint?: string;
/**
* Custom image proxy endpoint
*/
imageProxyEndpoint?: string;
/**
* Root element attributes
*/
rootAttrs?: HTMLAttributes;
};
type __VLS_Slots = {
default?: (props: NonNullable) => any;
loading?: () => any;
error?: (props: {
error: typeof error.value;
}) => any;
};
declare const error: import("vue").Ref | undefined, import("nuxt/app").NuxtError | undefined>;
declare const slotProps: import("vue").ComputedRef<{
tweet: XEmbedTweetData;
userName: string;
userHandle: string;
userAvatar: string;
isVerified: boolean | undefined;
text: string;
datetime: string;
createdAt: Date;
likes: number;
likesFormatted: string;
replies: number;
repliesFormatted: string;
photos: {
proxiedUrl: string;
url: string;
width: number;
height: number;
}[] | undefined;
video: {
posterProxied: string;
poster: string;
variants: Array<{
type: string;
src: string;
}>;
} | null;
tweetUrl: string;
userUrl: string;
quotedTweet: XEmbedTweetData | undefined;
isReply: boolean;
replyToUser: string | undefined;
proxyImage: (url: string) => string;
} | null>;
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
tweet: import("vue").Ref;
status: import("vue").Ref;
error: import("vue").Ref | undefined, import("nuxt/app").NuxtError | undefined>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
apiEndpoint: string;
imageProxyEndpoint: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const __VLS_export: __VLS_WithSlots;
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_WithSlots = T & {
new (): {
$slots: S;
};
};