///
import type { ImageStyle, TextStyle, ViewStyle } from "react-native";
/**
* Module filter options
*/
declare type FilterOptions = {
exports?: boolean;
default?: false;
} | {
exports?: true;
default?: true;
};
/**
* Find a Discord Module
* @param filter Module filter
* @param options Options.
* @returns Module if found, else null
*/
export declare function getModule(filter: (module: any) => boolean, options?: FilterOptions): any;
declare type PropIntellisense
= Record
& Record;
/**
* Find a module by props
* @param props One or more props
*/
export declare function getByProps(...props: T[]): PropIntellisense;
export declare function getByProps(...options: [...props: T[], options: FilterOptions]): PropIntellisense;
export declare function getByProps(...options: [...props: T[], defaultExport: boolean]): PropIntellisense;
/**
* Find a module by its displayName property. Usually useful for finding React Components
* @returns Module if found, else null
*/
export declare function getByDisplayName(displayName: string, options?: FilterOptions): any;
/**
* Find a Store by its name.
* @returns Module if found, else null
*/
export declare function getByStoreName(storeName: string, options?: FilterOptions): any;
/**
* Get a module by its numeric id. Unless you know what you're doing, you
* should not use this.
*/
export declare const getById: (moduleId: number) => any;
/**
* Same as getModule, but retrieves all matches instead of the first
* @returns Array of modules
*/
export declare function getAll(filter: (module: any) => boolean, options?: FilterOptions): any[];
/**
* Same as getByProps, but retrieves all matches instead of the first
* @returns Array of modules
*/
export declare function getAllByProps(...props: T[]): PropIntellisense[];
export declare function getAllByProps(...options: [...props: T[], options: FilterOptions]): PropIntellisense[];
export declare function getAllByProps(...options: [...props: T[], defaultExport: boolean]): PropIntellisense[];
/**
* Find all modules with properties containing the specified keyword
* @param keyword They keyword
* @param skipConstants Whether constants (names that are FULL_CAPS) should be skipped. Defaults to true
* @returns Array of names that match. You can then access moduleSearchResults.SomeName to view the
* corresponding module
*/
export declare function searchByKeyword(keyword: string, skipConstants?: boolean): string[];
export declare const UserStore: any;
export declare const GuildStore: any;
export declare const ChannelStore: any;
export declare const MessageStore: any;
export declare const GuildMemberStore: any;
export declare const SelectedChannelStore: any;
export declare const ModalActions: PropIntellisense<"closeModal">;
export declare const MessageActions: PropIntellisense<"sendMessage" | "receiveMessage">;
export declare const FluxDispatcher: PropIntellisense<"dirtyDispatch">;
export declare const FetchUserActions: PropIntellisense<"fetchProfile">;
export declare const ContextMenuActions: PropIntellisense<"openContextMenu">;
export declare const Clipboard: {
getString(): Promise;
setString(str: string): Promise;
};
export declare const RestAPI: PropIntellisense<"getAPIBaseURL" | "get">;
export declare const i18n: PropIntellisense<"Messages">;
export declare const Flux: PropIntellisense<"connectStores">;
export declare const React: typeof import("react");
export declare const ReactNative: typeof import("react-native");
export declare const Constants: import("./constants").default;
export declare const URLOpener: PropIntellisense<"openURL" | "handleSupportedURL">;
export declare const Forms: PropIntellisense<"FormSection">;
declare type Style = ViewStyle & ImageStyle & TextStyle;
declare type Styles = Partial<{
[key in keyof Style]: readonly [Style[key], Style[key]] | Style[key];
}>;
declare type FlattenValue = {
[key in keyof T]: T[key] extends ReadonlyArray ? E : T[key];
};
export declare const Styles: {
ThemeColorMap: Record;
createThemedStyleSheet: ;
}>(styles: T) => { [key in keyof T]: FlattenValue; };
getThemedStylesheet: ;
}>(styles: T_1) => Record<"mergedDarkStyles" | "mergedLightStyles", { [key_1 in keyof T_1]: FlattenValue; }>;
};
export {};